最后一个测试点不知道怎么判断!
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=5500+2;
int main()
{
char a[maxn],ch;
int w=0,l=0,f=0,j=0,s[maxn],q[maxn],k=0,n,m;
memset(s,0,sizeof(s));
memset(q,0,sizeof(q));
while(cin>>ch)
{
if(ch=='E')
{
break;
}
if(abs(w-l)>=2&&(l>=11||w>=11))
{
printf("%d:%d\n",w,l);n=w;m=l;
w=l=0;
}
if(abs(s[j]-q[j])>=2&&(s[j]>=21||q[j]>=21))
j++;
if(ch=='W')
{
w++;s[j]++;
}
else if(ch=='L')
{
l++;q[j]++;
}
}
if((w!=0||l!=0)||(abs(n-m)>=2&&(n>=11||m>=11)))
printf("%d:%d\n\n",w,l);
for(k=0;k<=j;k++)
{
printf("%d:%d\n",s[k],q[k]);
}
if((s[k]!=0||q[k]!=0)||(abs(s[k-1]-q[k-1])>=2&&(s[k-1]>=21||q[k-1]>=21)))
printf("%d:%d\n",s[k],q[k]);
return 0;
}