//直接分为11分和21分两种情况进行讨论(在判断为E时结束)
#include <bits/stdc++.h>
#include <stdio.h>
#include <iostream>
#include <cstring>
using namespace std;//namespace,是指标识符的各种可见范
围,这样命名空间std内定义的所有标识符都有效。C++标准程序库中的所有标识符都被定义于一个名为std
的namespace中
int win[60000]; //每行25,2500行
int w,l;//用来记录赢和输
int main()
{
char s;
for(int i=1;cin>>s&&s!='E';i++)//获取字符循环判断,当碰到E结束
{
if(s=='W')win[i]=1;
else win[i]=-1;
}
//分两种情况讨论
//11分情况
for(int i=1;1;i++)
{ //1代表W胜,-1代表L胜
if(win[i]==0)//读到0则记录结束,并且输出记录结束前的分数。 0:0
也要输出
{
cout<<w<<":"<<l<<endl<<endl;
break;
}
if(win[i]==1) w++;//胜场+1
if(win[i]==-1)l++;//负场+1
if(w-l>=2||l-w>=2)
if(w>=11||l>=11)//当分差大于2且一方分数大等于11输出
{
//printf("%d:%d",w,l);
// printf("\n");
cout<<w<<":"<<l<<endl;
w=0;//比分清零
l=0;
}
}
w=0;//清零
l=0;
//21分制
for(int i=1;1;i++)//同上,唯一区别就是判定变为21
{
if(win[i]==0)
{
cout<<w<<":"<<l;
break;
}
if(win[i]==1)w++;
if(win[i]==-1)l++;
if(w-l>=2||l-w>=2)
if(w>=21||l>=21)//11变为21
{
cout<<w<<":"<<l<<endl;
w=0;
l=0;
}
}
return 0;
}
关键点在于:1,E的情况要判断
2:0:0也要输出
3:分11分制和21分制,并且当分差大于2