```
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int a[100000];
int main(){
int readLength=0;
//
char s;
for(int i=0;cin >> s&&s!='E';i++){
if(s=='W')a[i]=1;
else a[i]=2;
readLength++;
}
if (readLength==0){
cout << "0:0\n\n0:0";
}
//11Points
int wwin=0,lwin=0;
for (int i=0; i<readLength; i++){
if(a[i]==1){
wwin++;
}else{
lwin++;
}
if ((wwin >= 11 || lwin >= 11) && (abs(wwin - lwin) >= 2)){
printf("%d:%d\n",wwin,lwin);
wwin=0,lwin=0;
}
}
if (wwin!=0 || lwin!=0){
printf("%d:%d\n",wwin,lwin);
wwin=0,lwin=0;
}
cout << endl;
//21Points
for (int i=0; i<readLength; i++){
if(a[i]==1){
wwin++;
}else{
lwin++;
}
if ((wwin >= 21 || lwin >= 21) && (abs(wwin - lwin ) >= 2)){
printf("%d:%d\n",wwin,lwin);
wwin=0,lwin=0;
}
}
if (wwin!=0 || lwin!=0){
printf("%d:%d\n",wwin,lwin);
wwin=0,lwin=0;
}
cout << endl;
}
```
应该是这个
by AndyCGM @ 2023-11-29 22:03:51
@[AndyChen130130](/user/1054257)
```
#include<bits/stdc++.h>
using namespace std;
int f[2] = {11, 21};
int a[25 * 2500 + 10], n = 0; char tmp;
int main()
{
while(1)
{
cin >> tmp;
if(tmp == 'E') break;
else if(tmp == 'W')
a[n++] = 1;
else if(tmp == 'L')
a[n++] = 0;
}
for(int k = 0; k < 2; k++)
{
int w = 0, l = 0;
for(int i = 0; i < n; i++ )
{
w =w+ a[i];
l += 1 - a[i];
if((max(w, l) >= f[k]) && abs(w - l) >= 2)
{
cout << w << ":" << l << endl; w = l = 0;
}
}
cout << w << ":" << l << endl;
cout << endl;
}
return 0;
}
by 2345A @ 2023-12-05 19:05:38