九度 1363 欢乐斗地主

http://ac.jobdu.com/problem.php?id=1363

按规则来就可以 注意,可能有多副牌 一开始按一副牌处理的,一个数据也过不了 另外,还有 每次找两个相同的牌时,从3开始找,找不到再去1和2中找。

代码写的比较乱,大概是好久不写的缘故.

  1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 int N;
5 int num_count[20];
6 int comp[5];
7 int main()
8 {
9
10 while(scanf("%d",&N)!=EOF){
11 int i;
12 memset(num_count,0,sizeof(num_count));
13 for(i=0;i<N;i++){
14 int temp;
15 scanf("%d",&temp);
16 num_count[temp]++;
17 }
18 for(i=0;i<5;i++)
19 scanf("%d",&comp[i]);
20 if(comp[0]==2){
21 printf("My God\n");
22 continue;
23 }
24 else if(comp[0]==1){
25 if(num_count[2]<3)
26 printf("My God\n");
27 else{
28 int num=0;
29 bool flag=false;
30 int j;
31 for(j=3;j<=13;j++){
32 if((num_count[j]>=2&&j!=2)||(j==2&&num_count[j]>=5)){
33 flag=true;
34 num=j;
35 break;
36 }
37 }
38 if(!flag){
39 for(j=1;j<=2;j++){
40 if((num_count[j]>=2&&j!=2)||(j==2&&num_count[j]>=5)){
41 flag=true;
42 num=j;
43 break;
44 }
45 }
46 }
47 if(flag){
48 printf("2 2 2 %d %d\n",num,num);
49 }
50 else printf("My God\n");
51 }
52 }
53 else{
54 int j;
55 bool flag=false;
56 for(j=comp[0]+1;j<=13;j++){
57 if(flag)
58 break;
59 if(num_count[j]>=3){
60 int k;
61 for(k=3;k<=13;k++){
62 if((num_count[k]>=2&&k!=j)||(k==j&&num_count[k]>=5)){
63 printf("%d %d %d %d %d\n",j,j,j,k,k);
64 flag=true;
65 break;
66 }
67 }
68 if(!flag){
69 int k;
70 for(k=1;k<=2;k++){
71 if((num_count[k]>=2&&k!=j)||(k==j&&num_count[k]>=5)){
72 printf("%d %d %d %d %d\n",j,j,j,k,k);
73 flag=true;
74 break;
75 }
76 }
77 }
78 }
79 }
80 if(!flag){
81 for(j=1;j<=2;j++){
82 if(flag)
83 break;
84 if(num_count[j]>=3){
85 int k;
86 for(k=3;k<=13;k++){
87 if((num_count[k]>=2&&k!=j)||(k==j&&num_count[k]>=5)){
88 printf("%d %d %d %d %d\n",j,j,j,k,k);
89 flag=true;
90 break;
91 }
92 }
93 if(!flag){
94 int k;
95 for(k=1;k<=2;k++){
96 if((num_count[k]>=2&&k!=j)||(k==j&&num_count[k]>=5)){
97 printf("%d %d %d %d %d\n",j,j,j,k,k);
98 flag=true;
99 break;
100 }
101 }
102 }
103 }
104 }
105 }
106 if(!flag)
107 printf("My God\n");
108 }
109 }
110 }



原文地址:https://www.cnblogs.com/yangce/p/2303030.html