CDOJ--1005
原题链接:http://www.acm.uestc.edu.cn/problem.php?pid=1005
分析:判断有无"no"即可。
点球大战(penalty)
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 char str[105]; 6 int isOK(char *str) 7 { 8 int len=strlen(str); 9 if(str[len-8]==' '&&str[len-7]=='n'&&str[len-6]=='o'&&str[len-5]==' ') 10 return 0; 11 return 1; 12 } 13 int main() 14 { 15 int N,ans1,ans2; 16 char penalty1[10],penalty2[10]; 17 while(scanf("%d",&N)==1) 18 { 19 getchar();ans1=0;ans2=0; 20 if(N==0)break;int j=0,k=0; 21 for(int i=0;i<N;i++) 22 { 23 gets(str); 24 if(i%2==0) 25 { 26 if(isOK(str)){penalty1[j++]='O';ans1++;} 27 else penalty1[j++]='X'; 28 } 29 else 30 { 31 if(isOK(str)){penalty2[k++]='O';ans2++;} 32 else penalty2[k++]='X'; 33 } 34 } 35 int cnt; 36 if(N%2==0)cnt=N/2; 37 else cnt=(N+1)/2; 38 for(int i=1;i<=cnt;i++) 39 printf("%d ",i); 40 printf("Score\n"); 41 for(int i=0;i<j;i++) 42 printf("%c ",penalty1[i]); 43 printf("%d\n",ans1); 44 for(int i=0;i<k;i++) 45 printf("%c ",penalty2[i]); 46 if(k<j)printf("- "); 47 printf("%d\n",ans2); 48 } 49 return 0; 50 }