help me
2025-05-02 18:02:36
发布于:广东
2阅读
0回复
0点赞
help me
#include <bits/stdc++.h>
using namespace std;
struct dada{
int x,y;
}a[8],b[9];
int ton[16];
bool cmp(dada x,dada y){
if(x.x==y.x)return x.y>=y.y;
return x.x>=y.x;
}
bool anwer1(){
int o=b[0].x,ans=b[0].y;
if(ans!=14)return 0;
for(int i=1;i<5;i++){
if(b[i].x!=o){
return 0;
}if(ans-b[i].y!=1){
return 0;
}ans--;
}return 1;
}
bool anwer2(){
int o=b[0].x,ans=b[0].y,ans1;
if(ans==14){
ans1=6;
}
for(int i=1;i<5;i++){
if(ans-b[i].y!=1){
if(ans1-b[i].y==1&&ans==14){
ans=ans1;
i--;
continue;
}
return 0;
}
if(b[i].x!=o){
return 0;
}ans--;
}return 1;
}
bool anwer3(){
for(int i=2;i<=14;i++){
if(ton[i]>=4)return 1;
}return 0;
}
bool anwer4(){
bool f1=0,f=0;
for(int i=2;i<=14;i++){
if(ton[i]>=3){
f=1;
}else if(ton[i]>=2){
f1=1;
}
}return f&&f1;
}
bool anwer5(){
int o=b[0].x;
for(int i=1;i<5;i++){
if(b[i].x!=o){
return 0;
}
}return 1;
}
bool anwer6(){
int ans=b[0].y,ans1;
if(ans>=14){
ans1=6;
}
for(int i=1;i<5;i++){
if(ans-b[i].y!=1){
if(ans1-b[i].y==1&&ans==14){
ans=ans1;
i--;
continue;
}
return 0;
}ans--;
}return 1;
}
bool anwer7(){
for(int i=2;i<=14;i++){
if(ton[i]>=3){
return 1;
}
}return 0;
}
bool anwer8(){
int ans=0;
for(int i=2;i<=14;i++){
if(ton[i]>=2){
ans++;
}
}if(ans>=2)return 1;
return 0;
}
bool anwer9(){
for(int i=2;i<=14;i++){
if(ton[i]>=2){
return 1;
}
}return 0;
}
int main(){
int t,ans;
char a1,a2;
cin >> t;
while(t--){
for(int i=0;i<7;i++){
cin>>a2>>a1;
if(a1=='S')a[i].x=1;
else if(a1=='H')a[i].x=2;
else if(a1=='C')a[i].x=3;
else if(a1=='D')a[i].x=4;
if(a2=='T')a[i].y=10;
else if(a2=='J')a[i].y=11;
else if(a2=='Q')a[i].y=12;
else if(a2=='K')a[i].y=13;
else if(a2=='A')a[i].y=14;
else a[i].y=a2-'0';
}ans=10;
for(int i=0;i<7;i++){
for(int j=0;j<7;j++){
memset(b,0,sizeof(b));
for(int k=0;k<7;k++){
if(k==i||k==j){
continue;
}
b[k]=a[k];
}sort(b,b+8,cmp);
memset(ton,0,sizeof(ton));
for(int k=0;k<7;k++){
ton[b[k].y]++;
}
if(anwer1()){
ans=min(ans,0);
}
else if(anwer2()){
ans=min(ans,1);
}
else if(anwer3()){
ans=min(ans,2);
}
else if(anwer4()){
ans=min(ans,3);
}
else if(anwer5()){
ans=min(ans,4);
}
else if(anwer6()){
ans=min(ans,5);
}
else if(anwer7()){
ans=min(ans,6);
}
else if(anwer8()){
ans=min(ans,7);
}
else if(anwer9()){
ans=min(ans,8);
}else{
ans=min(ans,9);
}
}
}if(ans==0){
cout<<"ROYAL FLUSH"<<endl;
}else if(ans==1){
cout<<"STRAIGHT FLUSH"<<endl;
}else if(ans==2){
cout<<"FOUR OF A KIND"<<endl;
}else if(ans==3){
cout<<"FULL HOUSE"<<endl;
}else if(ans==4){
cout<<"FLUSH"<<endl;
}else if(ans==5){
cout<<"STRAIGHT"<<endl;
}else if(ans==6){
cout<<"THREE OF KIND"<<endl;
}else if(ans==7){
cout<<"TWO PAIR"<<endl;
}else if(ans==8){
cout<<"ONE PAIR"<<endl;
}else{
cout<<"HIGH CARD"<<endl;
}
}
return 0;
}
这里空空如也
有帮助,赞一个