题目大意
给出两人乒乓球的比赛记录,输出两人在 11 11 11分制与 21 21 21分制时的比赛结果
题目分析
直接模拟,需要注意的就是乒乓球比赛的规则(超过分数界且相差至少两分比赛才结束)与假如刚好结束比赛的话还要输出 0 : 0 0:0 0:0。
C o d e Code Code
#include<iostream>
#include<cstdio>
#define sco 62510
#define ll long long
using namespace std;
char ch,s[sco];
ll p1,p2,lens(-1),j,k;
bool flag(0);
int main(){
while((ch=getchar())!='E'){
if(ch=='W' or ch=='L'){
s[++lens]=ch;
}
}j=0;lens=(lens==-1?0:lens);
for(int i=0;i<=lens;++i){
++j;
flag=0;
if(s[i]=='W'){
++p1;
}
if(s[i]=='L'){
++p2;
}
if(p1>=11 && p2<=p1-2 || p2>=11 && p1<=p2-2 || i==lens){
printf("%lld:%lld\n",p1,p2);
if(p1>=11 && p2<=p1-2 || p2>=11 && p1<=p2-2)flag=1;
p1=p2=j=0;
continue;
}
}j=0;
if(flag==1)printf("0:0\n");
flag=0;
printf("\n");
for(int i=0;i<=lens;++i){
++j;
flag=0;
if(s[i]=='W'){
++p1;
}
if(s[i]=='L'){
++p2;
}
if(p1>=21 && p2<=p1-2 || p2>=21 && p1<=p2-2 || i==lens){
printf("%lld:%lld\n",p1,p2);
if(p1>=21 && p2<=p1-2 || p2>=21 && p1<=p2-2)flag=1;
p1=p2=j=0;
continue;
}
}
if(flag==1)printf("0:0\n");
return 0;
}