题目连接:该题是luogu试炼场的2-2:T3
题目大意:
1 给出一个字符串,求在11分制和21分制下,各自的终局和比分情况;
解题思路:
1 纯粹的模拟题,注意一些细节就可以了;
2 注意结束条件:某一方到达或者超过分制,并且分差超过2分;
3 注意最后一盘的0:0的情况;
上代码:
//luogu1042:乒乓球
//不定长度的字符读入;
//细节处理
#include<cstdio>
#include<cstdlib>
char s[63000],ss;
int n=0;//长度
void input()//读入
{
while(1)
{
scanf("%c",&ss);
if(ss=='W'||ss=='L') s[++n]=ss;
else if(ss=='E') break;
}
}
void pd(int x)//x分制的判断
{
int a=0,b=0;
for(int i=1;i<=n;i++)//扫描整个字符串
{
if(s[i]=='W') a++;
if(s[i]=='L') b++;
if((a>=x||b>=x)&&abs(a-b)>=2)//有人胜出
{
printf("%d:%d\n",a,b);
a=b=0;
}
if(i==n)//最后一盘,不管得分如何都要输出
{
printf("%d:%d\n",a,b);
}
}
if(n==0)//特判
{
printf("0:0\n");
}
}
int main()
{
input();//读入
pd(11);//11分制
printf("\n");
pd(21);//21分制
return 0;
}