比赛 20110928 评测结果 WAAWWWAAAW
题目名称 拱猪计分 最终得分 50
用户昵称 Truth.Cirno 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-09-28 20:21:53
显示代码纯文本
  1. #include <cstdio>
  2. using namespace std;
  3.  
  4. int n[5]={0},sco[5]={0};
  5. bool hei[5][14]={{0}},hong[5][14]={{0}},mei[5][14]={{0}},fang[5][14]={{0}};
  6.  
  7. bool checkhong(int x)
  8. {
  9. int i;
  10. bool flag=1;
  11. if (n[x]<13)
  12. flag=0;
  13. for (i=1;flag&&i<=13;i++)
  14. if (hong[x][i]==0)
  15. flag=0;
  16. return(flag);
  17. }
  18.  
  19. int main(void)
  20. {
  21. freopen("heart.in","r",stdin);
  22. freopen("heart.out","w",stdout);
  23. const int RUL[14]={0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};
  24. int i,j,num;
  25. char ch/*,ch2,ch3,ch4*/;
  26. bool dou=0;
  27. while (0==0)
  28. {
  29. /*assign*/
  30. for (i=1;i<=4;i++)
  31. for (j=1;j<=13;j++)
  32. hei[i][j]=0;
  33. for (i=1;i<=4;i++)
  34. for (j=1;j<=13;j++)
  35. hong[i][j]=0;
  36. for (i=1;i<=4;i++)
  37. for (j=1;j<=13;j++)
  38. mei[i][j]=0;
  39. for (i=1;i<=4;i++)
  40. for (j=1;j<=13;j++)
  41. fang[i][j]=0;
  42. /*assign*/
  43. /*read*/
  44. for (i=1;i<=4;i++)
  45. {
  46. scanf("%d",&n[i]);
  47. for (j=1;j<=n[i];j++)
  48. {
  49. scanf("%*[' ']%c%d",&ch,&num);
  50. if (ch=='S')/*hei[i][]*/
  51. {
  52. hei[i][num]=1;
  53. }
  54. else if (ch=='H')/*hong[i][]*/
  55. {
  56. hong[i][num]=1;
  57. }
  58. else if (ch=='C')/*mei[i][]*/
  59. {
  60. mei[i][num]=1;
  61. }
  62. else/*fang[i][]*/
  63. {
  64. fang[i][num]=1;
  65. }
  66. }
  67. }
  68. /*read*/
  69. /*exit*/
  70. if (n[1]==0&&n[2]==0&&n[3]==0&&n[4]==0)
  71. break;
  72. /*exit*/
  73. /*assign2*/
  74. for (i=1;i<=4;i++)
  75. sco[i]=0;
  76. /*assign2*/
  77. /*work*/
  78. for (i=1;i<=4;i++)
  79. {
  80. if (n[i]==0)
  81. continue;
  82. /*assign3*/
  83. dou=0;
  84. /*assign3*/
  85. if (n[i]==1&&mei[i][10]==1)
  86. sco[i]=50;
  87. else
  88. {
  89. if (mei[i][10]==1)
  90. dou=1;
  91. if (checkhong(i)==1)
  92. {
  93. if (hei[i][12]==1&&fang[i][11]==1)
  94. sco[i]=500;
  95. else
  96. {
  97. sco[i]=200;
  98. if (hei[i][12]==1)
  99. sco[i]-=100;
  100. else if (fang[i][11]==1)
  101. sco[i]+=100;
  102. }
  103. }
  104. else
  105. {
  106. for (j=1;j<=13;j++)
  107. if (hong[i][j])
  108. sco[i]+=RUL[j];
  109. if (hei[i][12]==1)
  110. sco[i]-=100;
  111. else if (fang[i][11]==1)
  112. sco[i]+=100;
  113. }
  114. if (dou)
  115. sco[i]*=2;
  116. }
  117. }
  118. /*work*/
  119. /*print*/
  120. /* if (sco[1]>0)
  121. ch='-';
  122. else
  123. ch='\0';
  124. if (sco[2]>0)
  125. ch2='-';
  126. else
  127. ch2='\0';
  128. if (sco[3]>0)
  129. ch3='-';
  130. else
  131. ch3='\0';
  132. if (sco[4]>0)
  133. ch4='-';
  134. else
  135. ch4='\0';
  136. printf("%c%d %c%d %c%d %c%d\n",ch,sco[1],ch2,sco[2],ch3,sco[3],ch4,sco[4]);
  137. */
  138. for (i=1;i<=3;i++)
  139. {
  140. if (sco[i]>0)
  141. printf("+%d ",sco[i]);
  142. else
  143. printf("%d ",sco[i]);
  144. }
  145. if (sco[4]>0)
  146. printf("+%d\n",sco[4]);
  147. else
  148. printf("%d\n",sco[4]);
  149. /*print*/
  150. }
  151. fclose(stdin);
  152. fclose(stdout);
  153. return(0);
  154. }