根据题意模拟即可,但这代码......
CODE:
#include<bits/stdc++.h>
using namespace std;
int i[20]={0},t[20]={0},m[20]={0},ton[4][10]={0},z[10]={0},cmp[4][10]={0},zz[10][10]={0};
int read()
{
char a;int n;bool z=true;
while(1)
{
a=getchar();
if (a>'9'||a<'0')
{
if (a=='-')
{
z=false;
}
continue;
}
if (z)
{
n=a-'0';
}
else
{
n=a-'0';
n-=2*n;
}
return n;
}
}
int main()
{
int j,n,a,l=0,k,y,cnt=0;
scanf("%d",&n);
for (a=1;a<=n;a++)
{
memset(z,0,sizeof(z));
memset(ton,0,sizeof(ton));
memset(cmp,0,sizeof(cmp));
memset(zz,0,sizeof(zz));
for (l=1;l<=7;l++)
{
i[l]=read();
}
for (l=1;l<=7;l++)
{
m[l]=read();
}
for (l=1;l<=7;l++)
{
t[l]=read();
}
sort(i+1,i+1+7);
sort(m+1,m+1+7);
sort(t+1,t+1+7);
cnt=0;
for (l=1;l<=7;l++)
{
if (i[l]==-1)
{
cnt++;
}
}
if (cnt>=3)
{
z[1]=-1;
}
cnt=0;
for (l=1;l<=7;l++)
{
if (m[l]==-1)
{
cnt++;
}
}
if (cnt>=3)
{
z[2]=-1;
}
cnt=0;
for (l=1;l<=7;l++)
{
if (t[l]==-1)
{
cnt++;
}
}
if (cnt>=3)
{
z[3]=-1;
}
if (z[1]==-1&&z[2]==-1&&z[3]==-1)
{
printf("Draw!\n");
continue;
}
for(;z[1]!=-1;)
{
for (j=1;j<=7;j++)
{
if (i[j]!=-1)
{
ton[1][i[j]]++;
}
}
if (ton[1][1]>=2&&ton[1][3]>=1&&ton[1][4]>=1&&ton[1][5]>=1)
{
z[1]=10;
break;
}
for (j=9;j>=0;j--)
{
if (ton[1][j])
{
for (l=j,y=2;y<=5;y++)
{
if (l-2>=0&&ton[1][l-2])
{
l-=2;
}
else
{
break;
}
}
if (y==6)
{
z[1]=9;
cmp[1][1]=j;
break;
}
}
}
if (z[1]==9)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[1][j])
{
for (l=j,y=2;y<=5;y++)
{
if (l-1>=0&&ton[1][l-1])
{
l--;
}
else
{
break;
}
}
if (y==6)
{
z[1]=8;
cmp[1][1]=j;
break;
}
}
}
if (z[1]==8)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[1][j]>=5)
{
z[1]=7;
cmp[1][1]=j;
break;
}
}
if (z[1]==7)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[1][j]>=3)
{
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[1][l]>=2)
{
z[1]=6;
cmp[1][1]=j;
cmp[1][2]=l;
break;
}
}
}
if (z[1]==6)
{
break;
}
}
}
if (z[1]==6)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[1][j]>=4)
{
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[1][l])
{
z[1]=5;
cmp[1][1]=j;
cmp[1][2]=l;
break;
}
}
}
if (z[1]==5)
{
break;
}
}
}
if (z[1]==5)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[1][j]>=2)
{
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[1][l]>=2)
{
z[1]=4;
cmp[1][1]=j;
cmp[1][2]=l;
for (k=9;k>=0;k--)
{
if (k!=j&&k!=l)
{
if (ton[1][k])
{
cmp[1][3]=k;
break;
}
}
}
break;
}
}
}
if (z[1]==4)
{
break;
}
}
}
if (z[1]==4)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[1][j]>=3)
{
z[1]=3;
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[1][l])
{
for (k=l;k>=0;k--)
{
if (k!=j&&k!=l)
{
if (ton[1][k])
{
cmp[1][3]=k;
break;
}
}
}
cmp[1][2]=l;
break;
}
}
}
cmp[1][1]=j;
break;
}
}
if (z[1]==3)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[1][j]>=2)
{
z[1]=2;
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[1][l])
{
cmp[1][2]=l;
l--;
break;
}
}
}
for (;l>=0;l--)
{
if (l!=j)
{
if (ton[1][l])
{
cmp[1][3]=l;
l--;
break;
}
}
}
for (;l>=0;l--)
{
if (l!=j)
{
if (ton[1][l])
{
cmp[1][4]=l;
break;
}
}
}
cmp[1][1]=j;
break;
}
}
if (z[1]==2)
{
break;
}
z[1]=1;
for (j=9;j>=0;j--)
{
if (ton[1][j])
{
cmp[1][1]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[1][j])
{
cmp[1][2]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[1][j])
{
cmp[1][3]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[1][j])
{
cmp[1][4]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[1][j])
{
cmp[1][5]=j;
j--;
break;
}
}
if (z[1]==1)
{
break;
}
}
for(;z[2]!=-1;)
{
for (j=1;j<=7;j++)
{
if (m[j]!=-1)
{
ton[2][m[j]]++;
}
}
if (ton[2][1]>=2&&ton[2][3]>=1&&ton[2][4]>=1&&ton[2][5]>=1)
{
z[2]=10;
break;
}
for (j=9;j>=0;j--)
{
if (ton[2][j])
{
for (l=j,y=2;y<=5;y++)
{
if (l-2>=0&&ton[2][l-2])
{
l-=2;
}
else
{
break;
}
}
if (y==6)
{
z[2]=9;
cmp[2][1]=j;
break;
}
}
}
if (z[2]==9)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[2][j])
{
for (l=j,y=2;y<=5;y++)
{
if (l-1>=0&&ton[2][l-1])
{
l--;
}
else
{
break;
}
}
if (y==6)
{
z[2]=8;
cmp[2][1]=j;
break;
}
}
}
if (z[2]==8)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[2][j]>=5)
{
z[2]=7;
cmp[2][1]=j;
break;
}
}
if (z[2]==7)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[2][j]>=3)
{
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[2][l]>=2)
{
z[2]=6;
cmp[2][1]=j;
cmp[2][2]=l;
break;
}
}
}
if (z[2]==6)
{
break;
}
}
}
if (z[2]==6)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[2][j]>=4)
{
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[2][l])
{
z[2]=5;
cmp[2][1]=j;
cmp[2][2]=l;
break;
}
}
}
if (z[2]==5)
{
break;
}
}
}
if (z[2]==5)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[2][j]>=2)
{
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[2][l]>=2)
{
z[2]=4;
cmp[2][1]=j;
cmp[2][2]=l;
for (k=9;k>=0;k--)
{
if (k!=j&&k!=l)
{
if (ton[2][k])
{
cmp[2][3]=k;
break;
}
}
}
break;
}
}
}
if (z[2]==4)
{
break;
}
}
}
if (z[2]==4)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[2][j]>=3)
{
z[2]=3;
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[2][l])
{
for (k=l;k>=0;k--)
{
if (k!=j&&k!=l)
{
if (ton[2][k])
{
cmp[2][3]=k;
break;
}
}
}
cmp[2][2]=l;
break;
}
}
}
cmp[2][1]=j;
break;
}
}
if (z[2]==3)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[2][j]>=2)
{
z[2]=2;
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[2][l])
{
cmp[2][2]=l;
l--;
break;
}
}
}
for (;l>=0;l--)
{
if (l!=j)
{
if (ton[2][l])
{
cmp[2][3]=l;
l--;
break;
}
}
}
for (;l>=0;l--)
{
if (l!=j)
{
if (ton[2][l])
{
cmp[2][4]=l;
break;
}
}
}
cmp[2][1]=j;
break;
}
}
if (z[2]==2)
{
break;
}
z[2]=1;
for (j=9;j>=0;j--)
{
if (ton[2][j])
{
cmp[2][1]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[2][j])
{
cmp[2][2]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[2][j])
{
cmp[2][3]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[2][j])
{
cmp[2][4]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[2][j])
{
cmp[2][5]=j;
j--;
break;
}
}
if (z[2]==1)
{
break;
}
}
for(;z[3]!=-1;)
{
for (j=1;j<=7;j++)
{
if (t[j]!=-1)
{
ton[3][t[j]]++;
}
}
if (ton[3][1]>=2&&ton[3][3]>=1&&ton[3][4]>=1&&ton[3][5]>=1)
{
z[3]=10;
break;
}
for (j=9;j>=0;j--)
{
if (ton[3][j])
{
for (l=j,y=2;y<=5;y++)
{
if (l-2>=0&&ton[3][l-2])
{
l-=2;
}
else
{
break;
}
}
if (y==6)
{
z[3]=9;
cmp[3][1]=j;
break;
}
}
}
if (z[3]==9)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[3][j])
{
for (l=j,y=2;y<=5;y++)
{
if (l-1>=0&&ton[3][l-1])
{
l--;
}
else
{
break;
}
}
if (y==6)
{
z[3]=8;
cmp[3][1]=j;
break;
}
}
}
if (z[3]==8)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[3][j]>=5)
{
z[3]=7;
cmp[3][1]=j;
break;
}
}
if (z[3]==7)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[3][j]>=3)
{
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[3][l]>=2)
{
z[3]=6;
cmp[3][1]=j;
cmp[3][2]=l;
break;
}
}
}
if (z[3]==6)
{
break;
}
}
}
if (z[3]==6)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[3][j]>=4)
{
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[3][l])
{
z[3]=5;
cmp[3][1]=j;
cmp[3][2]=l;
break;
}
}
}
if (z[3]==5)
{
break;
}
}
}
if (z[3]==5)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[3][j]>=2)
{
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[3][l]>=2)
{
z[3]=4;
cmp[3][1]=j;
cmp[3][2]=l;
for (k=9;k>=0;k--)
{
if (k!=j&&k!=l)
{
if (ton[3][k])
{
cmp[3][3]=k;
break;
}
}
}
break;
}
}
}
if (z[3]==4)
{
break;
}
}
}
if (z[3]==4)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[3][j]>=3)
{
z[3]=3;
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[3][l])
{
for (k=l;k>=0;k--)
{
if (k!=j&&k!=l)
{
if (ton[3][k])
{
cmp[3][3]=k;
break;
}
}
}
cmp[3][2]=l;
break;
}
}
}
cmp[3][1]=j;
break;
}
}
if (z[3]==3)
{
break;
}
for (j=9;j>=0;j--)
{
if (ton[3][j]>=2)
{
z[3]=2;
for (l=9;l>=0;l--)
{
if (l!=j)
{
if (ton[3][l])
{
cmp[3][2]=l;
l--;
break;
}
}
}
for (;l>=0;l--)
{
if (l!=j)
{
if (ton[3][l])
{
cmp[3][3]=l;
l--;
break;
}
}
}
for (;l>=0;l--)
{
if (l!=j)
{
if (ton[3][l])
{
cmp[3][4]=l;
break;
}
}
}
cmp[3][1]=j;
break;
}
}
if (z[3]==2)
{
break;
}
z[3]=1;
for (j=9;j>=0;j--)
{
if (ton[3][j])
{
cmp[3][1]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[3][j])
{
cmp[3][2]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[3][j])
{
cmp[3][3]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[3][j])
{
cmp[3][4]=j;
j--;
break;
}
}
for (;j>=0;j--)
{
if (ton[3][j])
{
cmp[3][5]=j;
j--;
break;
}
}
if (z[3]==1)
{
break;
}
}
if (z[1]>z[2])
{
zz[1][2]=1;
}
if (z[1]<z[2])
{
zz[1][2]=0;
}
if (z[1]==z[2])
{
switch(z[1])
{
case -1:
case 10:zz[1][2]=2;break;
case 7:
case 9:
case 8:if (cmp[1][1]>cmp[2][1])
{
zz[1][2]=1;
}
else
{
if (cmp[1][1]<cmp[2][1])
{
zz[1][2]=0;
}
else
{
zz[1][2]=2;
}
}break;
case 5:
case 6:for (j=1;j<=2;j++)
{
if (cmp[1][j]>cmp[2][j])
{
zz[1][2]=1;
break;
}
else
{
if (cmp[1][j]<cmp[2][j])
{
zz[1][2]=0;
break;
}
}
}
if (j==3)
{
zz[1][2]=2;
}break;
case 3:
case 4:for (j=1;j<=3;j++)
{
if (cmp[1][j]>cmp[2][j])
{
zz[1][2]=1;
break;
}
else
{
if (cmp[1][j]<cmp[2][j])
{
zz[1][2]=0;
break;
}
}
}
if (j==4)
{
zz[1][2]=2;
}break;
case 2:for (j=1;j<=4;j++)
{
if (cmp[1][j]>cmp[2][j])
{
zz[1][2]=1;
break;
}
else
{
if (cmp[1][j]<cmp[2][j])
{
zz[1][2]=0;
break;
}
}
}
if (j==5)
{
zz[1][2]=2;
}break;
case 1:for (j=1;j<=5;j++)
{
if (cmp[1][j]>cmp[2][j])
{
zz[1][2]=1;
break;
}
else
{
if (cmp[1][j]<cmp[2][j])
{
zz[1][2]=0;
break;
}
}
}
if (j==6)
{
zz[1][2]=2;
}break;
}
}
if (z[1]>z[3])
{
zz[1][3]=1;
}
if (z[1]<z[3])
{
zz[1][3]=0;
}
if (z[1]==z[3])
{
switch(z[1])
{
case -1:
case 10:zz[1][3]=2;break;
case 7:
case 9:
case 8:if (cmp[1][1]>cmp[3][1])
{
zz[1][3]=1;
}
else
{
if (cmp[1][1]<cmp[3][1])
{
zz[1][3]=0;
}
else
{
zz[1][3]=2;
}
}break;
case 5:
case 6:for (j=1;j<=2;j++)
{
if (cmp[1][j]>cmp[3][j])
{
zz[1][3]=1;
break;
}
else
{
if (cmp[1][j]<cmp[3][j])
{
zz[1][3]=0;
break;
}
}
}
if (j==3)
{
zz[1][3]=2;
}break;
case 3:
case 4:for (j=1;j<=3;j++)
{
if (cmp[1][j]>cmp[3][j])
{
zz[1][3]=1;
break;
}
else
{
if (cmp[1][j]<cmp[3][j])
{
zz[1][3]=0;
break;
}
}
}
if (j==4)
{
zz[1][3]=2;
}break;
case 2:for (j=1;j<=4;j++)
{
if (cmp[1][j]>cmp[3][j])
{
zz[1][3]=1;
break;
}
else
{
if (cmp[1][j]<cmp[3][j])
{
zz[1][3]=0;
break;
}
}
}
if (j==5)
{
zz[1][3]=2;
}break;
case 1:for (j=1;j<=5;j++)
{
if (cmp[1][j]>cmp[3][j])
{
zz[1][3]=1;
break;
}
else
{
if (cmp[1][j]<cmp[3][j])
{
zz[1][3]=0;
break;
}
}
}
if (j==6)
{
zz[1][3]=2;
}break;
}
}
if (z[2]>z[3])
{
zz[2][3]=1;
}
if (z[2]<z[3])
{
zz[2][3]=0;
}
if (z[2]==z[3])
{
switch(z[2])
{
case -1:
case 10:zz[2][3]=2;break;
case 7:
case 9:
case 8:if (cmp[2][1]>cmp[3][1])
{
zz[2][3]=1;
}
else
{
if (cmp[2][1]<cmp[3][1])
{
zz[2][3]=0;
}
else
{
zz[2][3]=2;
}
}break;
case 5:
case 6:for (j=1;j<=2;j++)
{
if (cmp[2][j]>cmp[3][j])
{
zz[2][3]=1;
break;
}
else
{
if (cmp[2][j]<cmp[3][j])
{
zz[2][3]=0;
break;
}
}
}
if (j==3)
{
zz[2][3]=2;
}break;
case 3:
case 4:for (j=1;j<=3;j++)
{
if (cmp[2][j]>cmp[3][j])
{
zz[2][3]=1;
break;
}
else
{
if (cmp[2][j]<cmp[3][j])
{
zz[2][3]=0;
break;
}
}
}
if (j==4)
{
zz[2][3]=2;
}break;
case 2:for (j=1;j<=4;j++)
{
if (cmp[2][j]>cmp[3][j])
{
zz[2][3]=1;
break;
}
else
{
if (cmp[2][j]<cmp[3][j])
{
zz[2][3]=0;
break;
}
}
}
if (j==5){
zz[2][3]=2;
}break;
case 1:for (j=1;j<=5;j++){
if (cmp[2][j]>cmp[3][j]){
zz[2][3]=1;
break;
}
else{
if (cmp[2][j]<cmp[3][j]){
zz[2][3]=0;
break;
}
}
}
if(j==6){
zz[2][3]=2;
}break;
}
}
if (zz[1][2]==2&&zz[1][3]==1){
printf("TTL l0se!\n");
continue;
}
if (zz[2][3]==2&&zz[1][3]==2){
printf("Draw!\n");
continue;
}
if (zz[1][3]==2&&zz[1][2]==1){
printf("Magolor l0se!\n");
continue;
}
if (zz[2][3]==2&&zz[1][2]==0){
printf("I l0se!\n");
continue;
}
if (zz[1][2]==1&&zz[1][3]==1){
printf("I w1n!\n");
continue;
}
if (zz[1][2]==0&&zz[2][3]==1){
printf("Magolor w1n!\n");
continue;
}
if (zz[1][3]==0&&zz[2][3]==0){
printf("TTL w1n!\n");
continue;
}
}
return 0;
}
标签:游戏,纸牌,--,else,break,ton,&&,模拟,cmp
From: https://www.cnblogs.com/lzdqwq/p/18171219