一定要看清楚输出的Score的首字母是大写的!!!
在北美职业冰球联赛中,也有点球大战。与足球的规则不同的是,它只先罚3轮点球,随后就进入一轮定胜负的阶段,而其他的规则完全一样。
在本题中,输入将给出每次点球是否罚进,而你的任务则是输出一个“比分板”。
Input
XXXX good:表示这个点球罚进
或者XXXX no good:表示这个点球没有罚进
其中XXXX表示球员名字(全部由字母和空格组成,保证不会出现歧义)
每一行保证不超过100个字符。
XXXX和good以及XXXX和no、no和good之间保证有且只有1个空格。
good、no good都是小写。本题是大小写相关的。
数据不保证点球大战一定结束,也不保证在结束以后立即结束这组数据(即:不用判断点球大战是否结束,只用把罚进的点球往比分上加即可)。
6 Riise good Ballack good Gerrard no good Lampard no good Fernando Torres good Malouda good 9 Christiano Ronaldo no good Messi no good Giggs good Abidal no good Carrick good Ronaldinho good Rooney good Henry no good Tevez good 0
1 2 3 Score O X O 2 O X O 2 1 2 3 4 5 Score X O O O O 4 X X O X - 1 提示: 空格数要和样例输出一样,否则很可能会被判为“格式错误”(Presentation Error)。
代码:
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int n;
while(cin>>n && n)
{
getchar();
int i,l=0,v=0,h,sum1=0,sum2=0;
int aa[9],bb[9];
for(i=0;i<n;i++)
{
char a[100];
int g,k;
cin.getline(a,100);//get
for(g=0;a[g];g++){}
k=g-8;
if(a[k]==' ' && a[k+1]=='n' && a[k+2]=='o' &&a[k+3]==' ' && a[k+4]=='g' && a[k+5]=='o' &&a[k+6]=='o'&& a[k+7]=='d' )
{
if(i%2==0)
{
aa[l]=0;
l++;
}
else
{
bb[v]=0;
v++;
}
}
else
{
if(l==i/2 && i%2==0)
{
aa[l]=1;
l++;
}
if(v==i/2 && i%2)
{
bb[v]=1;
v++;
}
}
}
for(h=0;h<l;h++)
cout<<h+1<<' ';
cout<<"Score"<<endl;
for(h=0;h<l;h++)
{
if(aa[h]==1)
cout<<'O'<<' ';
else
cout<<'X'<<' ';
}
for(h=0;h<l;h++)
sum1+=aa[h];
cout<<sum1<<endl;
for(h=0;h<v;h++)
{
if(bb[h]==1)
cout<<'O'<<' ';
else
cout<<'X'<<' ';
}
if(v!=l)
{
for(h=v;h<l;h++)
cout<<'-'<<' ';
}
for(h=0;h<v;h++)
sum2+=bb[h];
cout<<sum2<<endl;
}
return 0;
}