378 条题解
-
0HazelW233 LV 5 @ 2017-03-29 21:09:24
#include<iostream> #include<string> using std::string; using std::cout; using std::cin; using std::endl; //各分制情况 void Output(string str, int point); int main() { string text; std::getline(cin, text, 'E'); //11分制情况 Output(text, 11); cout << endl; //21分制情况 Output(text, 21); return 0; } void Output(string str, int point) { int win = 0, fail = 0; for (int i = 0; i<str.length(); i++) { if (str[i] == 'W') win++; if (str[i] == 'L') fail++; if ((win == point && fail < (point - 1)) || (fail == point && win < (point - 1))) { cout << win << ":" << fail << endl; win = 0; fail = 0; } else if ((win == point && fail == (point - 1)) || (fail == point && win == (point - 1))) continue; else if ((win > point && fail >= (point - 1) && win - fail >= 2) || (fail > point & win >= (point - 1) && fail - win >= 2)) { cout << win << ":" << fail << endl; win = 0; fail = 0; } } cout << win << ":" << fail; cout << endl; }
-
02017-03-22 21:38:28@
*var
a:array[0..100000] of char;
ch:char;
t,i,x,y:longint;
begin
t:=0;
repeat
read(ch);
if (ch='W') or (ch='L') then
begin
inc(t);
a[t]:=ch;
end;
until ch='E';//读入:注意数据中有换行
x:=0;y:=0;
for i:=1 to t do
begin
if a[i]='W' then inc(x);
if a[i]='L' then inc(y);
if abs(x-y)>=2 then//分差大于等于2
if (x>=11) or (y>=11) then
begin
writeln(x,':',y);
x:=0;y:=0;
end;
end;
writeln(x,':',y);//0:0也要输出
writeln;//11分制
x:=0;y:=0;
for i:=1 to t do
begin
if a[i]='W' then inc(x);
if a[i]='L' then inc(y);
if abs(x-y)>=2 then
if (x>=21) or (y>=21) then
begin
writeln(x,':',y);
x:=0;y:=0;
end;
end;
writeln(x,':',y);//21分制
end. -
02017-03-14 18:50:32@
var k:char;
s:ansistring;
q,p,i,len,l:longint;begin
read(k);
while k<>'E' do
begin
if (k='W')or(k='L') then
s:=s+k;
read(k);
end;
len:=length(s);
l:=11;
for i:=1 to len do
begin
if s[i]='W' then inc(q)
else inc(p);
if (abs(q-p)>=2)and((q>=l)or(p>=l)) then
begin
writeln(q,':',p);
q:=0;p:=0;
end;
end;
if (q<>0)or(p<>0) then
writeln(q,':',p);
l:=21;
writeln;
q:=0;p:=0;
for i:=1 to len do
begin
if s[i]='W' then inc(q)
else inc(p);
if (abs(q-p)>=2)and((q>=l)or(p>=l)) then
begin
writeln(q,':',p);
q:=0;p:=0;
end;
end;
if (q<>0)or(p<>0) then
writeln(q,':',p);
end.
为什么1,10点爆why -
02017-02-21 22:08:37@
字符串很大,一开始开10000,结果re。
原理很简单,逐一读取,设置两个变量分别累加,直到变量差距>=2并且有一个达到11或21
```c++
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
int a,b;void init(void)
{
a = 0;
b = 0;
}int finish(int a,int b,int x)
{
if(abs(a - b) >= 2){
if(a >= x || b >= x)
return 1;
}
return 0;
}
int main(void)
{
char s[100000] = {0},str;
int i = 0;
while((s[i++] = getchar()) != 'E') ;
i = 0;
while((str = s[i++]) != 'E'){
if(str == 'W'){
a++;
}
else if(str == 'L'){
b++;
}if(finish(a,b,11)){
printf("%d:%d\n",a,b);
init();
}
}
i = 0;printf("%d:%d\n\n",a,b);init();
while((str = s[i++]) != 'E'){
if(str == 'W'){
a++;
}
else if(str == 'L'){
b++;
}if(finish(a,b,21)){
printf("%d:%d\n",a,b);
init();
}
}
printf("%d:%d\n",a,b);
//main();
return 0;
}
``` -
02017-02-20 16:30:55@
一开始开了一个10000的数组结果炸RE了,晕死
#include<iostream> #include<stdio.h> using namespace std; char b[100000]={0}; int main(void) { int count1=0,count2=0,now=0; char a; while((a=getchar())!='E') { if(a=='L'||a=='W') b[now++]=a; } for(int i=0;i<now;i++) { if(b[i]=='W') count1++; else count2++; if((count1==11&&count2<=9)||(count2==11&&count1<=9)) { cout<<count1<<':'<<count2<<'\n'; count1=0; count2=0; continue; } else if((count1>=11&&count2>=10)||(count2>=11&&count1>=10)) { if(count1-count2>=2||count1-count2<=-2) { cout<<count1<<':'<<count2<<'\n'; count1=0; count2=0; continue; } } } cout<<count1<<':'<<count2<<'\n'<<'\n'; count1=0;count2=0; for(int i=0;i<now;i++) { if(b[i]=='W') count1++; else count2++; if((count1==21&&count2<=19)||(count2==21&&count1<=19)) { cout<<count1<<':'<<count2<<'\n'; count1=0; count2=0; continue; } else if((count1>=21&&count2>=20)||(count2>=21&&count1>=20)) { if(count1-count2>=2||count1-count2<=-2) { cout<<count1<<':'<<count2<<'\n'; count1=0; count2=0; continue; } } } cout<<count1<<':'<<count2<<endl; }
-
02017-02-08 16:02:46@
#include<iostream> #include<cstring> #include<cmath> using namespace std; char c[50000] = {}; int score1 = 0, score2 = 0;// w score1 + 1分,l相反 void f(int x, int y, int prescore1, int prescore2, int mod)// 计算x~y11分赛制下的情形, { if (c[y] == 'E') { cout << prescore1 << ':' << prescore2 << endl; score1 = score2 = 0; return; } if (c[y] == 'W') { score1 = prescore1 + 1; score2 = prescore2; } if (c[y] == 'L') { score1 = prescore1; score2 = prescore2 + 1; } if (c[y] == ' ') { score1 = score2 = 0; f(x, y + 1, prescore1, prescore2, mod); } if (c[y] == '\n') { score1 = score2 = 0; f(x, y + 1, prescore1, prescore2, mod); } bool a1, a2, a3, a4, a5; a1 = (score1 == mod) && ((score1 - score2) > 1); a2 = (score2 == mod) && ((score2 - score1) > 1); a3 = (score1 >= mod) && (score2 >= mod) && (abs(score1 - score2) > 1); a4 = (score1 == (mod + 1)) && (score2 == (mod - 1)); a5 = (score1 == (mod - 1)) && (score2 == (mod + 1)); if (a1 || a2 || a3 || a4 || a5) { cout << score1 << ':' << score2 << endl; score1 = score2 = 0; f(y + 1, y + 1, 0, 0, mod); return; } int temp1 = score1, temp2 = score2; score1 = score2 = 0; f(x, y + 1, temp1, temp2, mod); return; } int main() { char temp; int i = 0; while (cin >> temp) { if (temp == 'E') { c[i++] = temp; break; } c[i++] = temp; } //cout << c; f(0, 0, 0, 0, 11); cout << endl; f(0, 0, 0, 0, 21); system("pause"); return 0; }
-
02017-02-08 15:56:15@
#include<iostream> #include<cstring> #include<cmath> using namespace std; char c[50000] = {}; int score1 = 0, score2 = 0;// w score1 + 1分,l相反 void f11(int x, int y, int prescore1, int prescore2)// 计算x~y11分赛制下的情形, { if (c[y] == 'E') { cout << prescore1 << ':' << prescore2 << endl; score1 = score2 = 0; return; } if (c[y] == 'W') { score1 = prescore1 + 1; score2 = prescore2; } if (c[y] == 'L') { score1 = prescore1; score2 = prescore2 + 1; } if (c[y] == ' ') { score1 = score2 = 0; f11(x, y + 1, prescore1, prescore2); } if (c[y] == '\n') { score1 = score2 = 0; f11(x, y + 1, prescore1, prescore2); } bool a1, a2, a3, a4, a5; a1 = (score1 == 11) && ((score1 - score2) > 1); a2 = (score2 == 11) && ((score2 - score1) > 1); a3 = (score1 >= 11) && (score2 >= 11) && (abs(score1 - score2) > 1); a4 = (score1 == 12) && (score2 == 10); a5 = (score1 == 10) && (score2 == 12); if (a1 || a2 || a3 || a4 || a5) { cout << score1 << ':' << score2 << endl; score1 = score2 = 0; f11(y + 1, y + 1, 0, 0); return; } int temp1 = score1, temp2 = score2; score1 = score2 = 0; f11(x, y + 1, temp1, temp2); return; } void f21(int x, int y, int prescore1, int prescore2)// 计算x~y11分赛制下的情形, { if (c[y] == 'E') { cout << prescore1 << ':' << prescore2 << endl; return; } if (c[y] == 'W') { score1 = prescore1 + 1; score2 = prescore2; } if (c[y] == 'L') { score1 = prescore1; score2 = prescore2 + 1; } if (c[y] == ' ') { score1 = score2 = 0; f21(x, y + 1, prescore1, prescore2); } if (c[y] == '\n') { score1 = score2 = 0; f21(x, y + 1, prescore1, prescore2); } bool a1, a2, a3, a4, a5; a1 = (score1 == 21) && ((score1 - score2) > 1); a2 = (score2 == 21) && ((score2 - score1) > 1); a3 = (score1 >= 21) && (score2 >= 21) && (abs(score1 - score2) > 1); a4 = (score1 == 22) && (score2 == 20); a5 = (score1 == 20) && (score2 == 22); if (a1 || a2 || a3 || a4 || a5) { cout << score1 << ':' << score2 << endl; score1 = score2 = 0; f21(y + 1, y + 1, 0, 0); return; } int temp1 = score1, temp2 = score2; score1 = score2 = 0; f21(x, y + 1, temp1, temp2); return; } int main() { char temp; int i = 0; while (cin >> temp) { if (temp == 'E') { c[i++] = temp; break; } c[i++] = temp; } //cout << c; f11(0, 0, 0, 0); cout << endl; f21(0, 0, 0, 0); system("pause"); return 0; }
-
02017-01-19 22:02:10@
C++题解
vector不定长数组都知道吧,不知道请自习STL
顺便自习一下register,限于篇幅,不再累述评测结果
编译成功foo.cpp: In function 'int main()':
foo.cpp:37:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(reg int i=0;i<a[0].size();i++)
~^~~~~~~~~~~~
foo.cpp:40:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(reg int i=0;i<b[0].size();i++)
~^~~~~~~~~~~~
测试数据 #0: Accepted, time = 0 ms, mem = 736 KiB, score = 10
测试数据 #1: Accepted, time = 0 ms, mem = 748 KiB, score = 10
测试数据 #2: Accepted, time = 0 ms, mem = 748 KiB, score = 10
测试数据 #3: Accepted, time = 0 ms, mem = 748 KiB, score = 10
测试数据 #4: Accepted, time = 0 ms, mem = 752 KiB, score = 10
测试数据 #5: Accepted, time = 0 ms, mem = 868 KiB, score = 10
测试数据 #6: Accepted, time = 0 ms, mem = 780 KiB, score = 10
测试数据 #7: Accepted, time = 0 ms, mem = 732 KiB, score = 10
测试数据 #8: Accepted, time = 0 ms, mem = 736 KiB, score = 10
测试数据 #9: Accepted, time = 0 ms, mem = 736 KiB, score = 10
Accepted, time = 0 ms, mem = 868 KiB, score = 100代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
#define reg register
char ch;
vector<int>a[2],b[2];
int w0=0,w1=0,l0=0,l1=0;
int main()
{
while(1)
{
ch=getchar();
reg int flag1=0,flag2=0;
if(ch=='\n') ch=getchar();
if(ch=='W') w0++,w1++;
else
if(ch=='L')
l0++,l1++;
else if(ch=='E')
{
a[0].push_back(w0),a[1].push_back(l0);
b[0].push_back(w1),b[1].push_back(l1);
break;
}
if(abs(w0-l0)>=2&&(w0>=11||l0>=11))
a[0].push_back(w0),a[1].push_back(l0),flag1=1;
if(abs(w1-l1)>=2&&(w1>=21||l1>=21))
b[0].push_back(w1),b[1].push_back(l1),flag2=1;
if(flag1) w0=0,l0=0;
if(flag2) w1=0,l1=0;
}
if(b[0].size()==0)
puts("0:0"),puts("0:0");
for(reg int i=0;i<a[0].size();i++)
printf("%d:%d\n",a[0][i],a[1][i]);
putchar('\n');
for(reg int i=0;i<b[0].size();i++)
printf("%d:%d\n",b[0][i],b[1][i]);
return 0;
}
-
02017-01-19 12:30:49@
Var
i,d,j,j1,w,w1,l,l1:longint;
a,b,a1,b1:array[1..100000]of integer;
k:char;
Begin
d:=1; read(k);
while k<>'E' do
begin
if k='W' then
begin
inc(w); inc(w1);
end;
if k='L' then
begin
inc(l); inc(l1);
end;
if (w>=11) or (l>=11) then
if (w-l>=2) or (l-w>=2) then
begin
inc(j);
a[j]:=w;
b[j]:=l;
w:=0; l:=0;
end;
if (w1>=21) or (l1>=21) then
if (w1-l1>=2) or (l1-w1>=2) then
begin
inc(j1);
a1[j1]:=w1;
b1[j1]:=l1;
w1:=0; l1:=0;
end;
inc(d);
if d mod 20=0 then
readln(k)
else
read(k);
end;
for i:=1 to j do
writeln(a[i],':',b[i]);
writeln(w,':',l);
writeln;
for i:=1 to j1 do
writeln(a1[i],':',b1[i]);
writeln(w1,':',l1);
readln;
End.贼他妈 恶心 ,数组 要开到很大 才给我 过,可怜我提交了5次。
-
02017-01-17 10:45:57@
注意0:0的输出
-
02016-11-28 05:47:07@
#include <iostream> #include <cstdlib> #include <cstdio> #include <algorithm> #include <cstring> #include <vector> using namespace std; int main() { vector<char> s; char ch; while(ch!='E') { ch=cin.get(); if(isalpha(ch)){s.push_back(ch);} } vector<char>::iterator iter; int a=0; int b=0; for(iter=s.begin();iter!=s.end();iter++) { if(*iter=='W'){a++;} if(*iter=='L'){b++;} if((a>=11 || b>=11)&&(abs(a-b)>=2)){printf("%d:%d\n",a,b);a=b=0;} } cout<<a<<':'<<b<<endl<<endl; a=0;b=0; for(iter=s.begin();iter!=s.end();iter++) { if(*iter=='W'){a++;} if(*iter=='L'){b++;} if((a>=21 || b>=21)&&(abs(a-b)>=2)){printf("%d:%d\n",a,b);a=b=0;} } cout<<a<<':'<<b<<endl; return 0; }
-
02016-11-16 09:32:58@
#include<iostream>
#include<cstdio>
#include<cctype>
#include<cmath>
using namespace std;
char cc;
int a1[10000],b1[10000];
int a2[10000],b2[10000];int Abs(int num)
{
if(num<0)
return 0-num;
return num;
}
int main()
{
int i=0;
int j=0;
while(1)
{
cc= getchar();
if(cc=='E')
break;
if(!isalpha(cc))
continue;
if(cc=='W')
a1[i]++,a2[j]++;
if(cc=='L')
b1[i]++,b2[j]++;
if(a1[i]>=11 || b1[i]>=11)
if(Abs(a1[i]-b1[i])>=2)
i++;
if(a2[j]>=21 || b2[j]>=21)
if(Abs(a2[j]-b2[j])>=2)
j++;
}
for(int k=0;k<=i;k++)
cout<<a1[k]<<':'<<b1[k]<<endl;
cout<<endl;
for(int k=0;k<=j;k++)
cout<<a2[k]<<':'<<b2[k]<<endl;
return 0;
} -
02016-11-15 19:02:35@
var ch:char; a,a1,b,b1:array[1..100000] of integer; i,j,k:integer; begin i:=1; j:=1; repeat read(ch); if ch = 'W' then begin inc(a[i]); inc(b[j]); end; if ch = 'L' then begin inc(a1[i]); inc(b1[j]); end; if ((a[i] >= 11) or (a1[i] >= 11)) and (abs(a[i]-a1[i]) >=2) then inc(i); if ((b[j] >= 21) or (b1[j] >= 21)) and (abs(b[j]-b1[j]) >=2) then inc(j); until ch = 'E'; for k:=1 to i do writeln(a[k],':',a1[k]); writeln; for k:=1 to j do writeln(b[k],':',b1[k]); end.
-
02016-11-09 12:58:29@
#include<bits/stdc++.h>
using namespace std;
char a[1000000];
int main()
{
int i,j,k,l=0,n,m,w=0;
for(i=0;a[i-1]!='E';i++) cin>>a[i];
n=strlen(a);
if(a[0]=='E') cout<<"0:0\n\n0:0";
for(i=0;i<n;i++){
if(a[i]=='W') w++;
if(w>=11&&w-l>=2){
cout<<w<<":"<<l<<endl;
w=0;
l=0;
}
if(a[i]=='L') l++;
if(l>=11&&l-w>=2){
cout<<w<<":"<<l<<endl;
w=0;
l=0;
}
if(a[i]=='E'){
cout<<w<<":"<<l<<endl;
w=0;
l=0;
break;
}
}
cout<<endl;
for(i=0;i<n;i++){
if(a[i]=='W') w++;
if(w>=21&&w-l>=2){
cout<<w<<":"<<l<<endl;
w=0;
l=0;
}
if(a[i]=='L') l++;
if(l>=21&&l-w>=2){
cout<<w<<":"<<l<<endl;
w=0;
l=0;
}
if(a[i]=='E'){
cout<<w<<":"<<l<<endl;
w=0;
l=0;
break;
}
}
return 0;
} -
02016-11-09 12:46:02@
#include <bits/stdc++.h>
using namespace std;
char t[1000005];
int main()
{
int i,j,k,l,n=0,m=0,a=0;
for(i=0;t[i-1]!='E';i++) cin>>t[i];for(i=0;;i++) {
if(t[i]=='E') break;
else if(t[i]=='W') n++;
else m++;
if((n>=11&&n-m>=2) || (m>=11&&m-n>=2)) {
cout<<n<<":"<<m<<endl;
n=m=0;
}
}
cout<<n<<":"<<m<<endl;
n=m=0;
cout<<endl;for(i=0;;i++) {
if(t[i]=='E') break;
else if(t[i]=='W') n++;
else m++;
if((n>=21&&n-m>=2) || (m>=21&&m-n>=2)) {
cout<<n<<":"<<m<<endl;
n=m=0;
}
}
cout<<n<<":"<<m<<endl;
if(i=0) {
cout<<"0:0\n\n0:0"<<endl;
return 0;
}
return 0;
} -
02016-11-08 21:06:47@
pascal代码,数组随便定的哈哈,而且比较烦,比不过楼上的大神,不过比较容易理解,可以看一下。
pascal
var
i,j,hua,dui:longint;
n:char;
a:array[1..500000] of char;
begin
read(n); i:=1;
while n<>'E' do begin
if n='W' then begin a[i]:='W'; i:=i+1; end;
if n='L' then begin a[i]:='L'; i:=i+1; end;
read(n);
end;
i:=i-1;
for j:=1 to i do
begin
if a[j]='W' then hua:=hua+1;
if a[j]='L' then dui:=dui+1;
if (abs(hua-dui)>=2) and ((hua>=11) or(dui>=11)) then begin
writeln(hua,':',dui);
hua:=0; dui:=0;
end;
end;
writeln(hua,':',dui);
writeln;
hua:=0; dui:=0;
for j:=1 to i do
begin
if a[j]='W' then hua:=hua+1;
if a[j]='L' then dui:=dui+1;
if (abs(hua-dui)>=2) and ((hua>=21) or(dui>=21)) then begin
writeln(hua,':',dui);
hua:=0; dui:=0;
end;
end;
writeln(hua,':',dui);
end.
-
02016-11-06 11:37:31@
#include <bits/stdc++.h>
using namespace std;
char s[100000];
int main(){
char c;int a = 0, b = 0, d = 0, e = 0;
int win, lose;
int temp = 0;
while(scanf("%c", &c) != EOF){
if (c == 'E')break;
if (c == 'W'|| c=='L'){
s[temp] = c;
temp++;}
}int length = strlen(s);
for (int i = 0; i < length; i++){
if (s[i]=='W')a++;
if (s[i]=='L')b++;
if (a>=11&&a-b>=2){
cout << a <<":"<<b<<endl;
a = 0, b = 0;
}
if (b>=11&&b-a>=2){
cout << a <<":"<<b<<endl;
a = 0, b = 0;
}
}
cout << a <<":"<<b << endl << endl;
for (int i = 0; i < length; i++){
if (s[i]=='W')d++;
if (s[i]=='L')e++;
if (d>=21&&d-e>=2){
cout << d <<":"<<e<<endl;
d = 0, e = 0;
}
if (e>=21&&e-d>=2){
cout << d <<":"<<e<<endl;
d = 0, e = 0;
}
}
cout << d <<":"<<e<< endl;
return 0;
} -
02016-10-27 19:59:08@
测试数据 #0: Accepted, time = 0 ms, mem = 556 KiB, score = 10
测试数据 #1: Accepted, time = 0 ms, mem = 556 KiB, score = 10
测试数据 #2: Accepted, time = 0 ms, mem = 560 KiB, score = 10
测试数据 #3: Accepted, time = 0 ms, mem = 564 KiB, score = 10
测试数据 #4: Accepted, time = 0 ms, mem = 564 KiB, score = 10
测试数据 #5: Accepted, time = 0 ms, mem = 740 KiB, score = 10
测试数据 #6: Accepted, time = 0 ms, mem = 588 KiB, score = 10
测试数据 #7: Accepted, time = 0 ms, mem = 556 KiB, score = 10
测试数据 #8: Accepted, time = 0 ms, mem = 556 KiB, score = 10
测试数据 #9: Accepted, time = 0 ms, mem = 556 KiB, score = 10
Accepted, time = 0 ms, mem = 740 KiB, score = 100
啊哈,好坑啊QAQ
浪费我几分钟。。。。。。#include <iostream> #include <cstdio> #include <cstring> #include <vector> #include <algorithm> using namespace std; char ch; vector<int> a[2],b[2]; int w0 = 0,w1 = 0,l0 = 0,l1 = 0; int main() { while (1) { scanf("%c",&ch); int flag1 = 0,flag2 = 0; if ( ch == '\n' ) ch = getchar(); if ( ch == 'W' ) w0 ++,w1 ++; else if ( ch == 'L' ) l0++,l1++; else if ( ch == 'E' ) { a[0].push_back(w0),a[1].push_back(l0); b[0].push_back(w1),b[1].push_back(l1); break; } if ( abs(w0-l0) >= 2 && ( w0 >= 11 || l0 >= 11 ) ) a[0].push_back(w0),a[1].push_back(l0),flag1 = 1; if ( abs(w1-l1) >= 2 && ( w1 >= 21 || l1 >= 21 ) ) b[0].push_back(w1),b[1].push_back(l1),flag2 = 1; if ( flag1 ) w0 = 0,l0 = 0; if ( flag2 ) w1 = 0,l1 = 0; } if ( b[0].size() == 0 ) printf("0:0\n0:0"); for (int i=0;i<a[0].size();i++) printf("%d:%d\n",a[0][i],a[1][i]); putchar('\n'); for (int i=0;i<b[0].size();i++) printf("%d:%d\n",b[0][i],b[1][i]); return 0; }
-
02016-10-20 19:18:13@
//#include<fstream> #include<iostream> #include<string> #include<cmath> using namespace std; string s; //ifstream cin("test.in"); //ofstream cout("test.out"); void solve(int fen){ int x=0,y=0,len=s.size(); for(int i=0;i<len;i++){ if(s[i]=='E')break; if(s[i]=='W')x++; if(s[i]=='L')y++; if((x>=fen||y>=fen)&&abs(x-y)>1){ cout<<x<<':'<<y<<endl; x=y=0; } } cout<<x<<':'<<y<<endl; } int main(){ string t; while(getline(cin,t))s+=t; solve(11); cout<<endl; solve(21); return 0; }
-
02016-09-23 18:34:44@
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int cun[99999]; int jishu; int l,r,tem=0; char q; int main() {int temp=0; while(cin>>q) {if(q=='E')break; else {temp++; if(q=='W') {cun[temp]=cun[temp-1]+1;} else { cun[temp]=cun[temp-1];}} } if(temp==0) {cout<<"0:0"<<endl<<endl; cout<<"0:0";} else{ for(int i=1;i<=temp;i++) if(abs(2*cun[i]-2*cun[tem]-i+tem)>=2&&i-tem>=11&&(cun[i]-cun[tem]>=11||(i-tem)-(cun[i]-cun[tem])>=11)) {cout<<cun[i]-cun[tem]<<":"<<i-tem-cun[i]+cun[tem]<<endl; tem=i;} cout<<cun[temp]-cun[tem]<<":"<<temp-tem-cun[temp]+cun[tem]<<endl; tem=0; cout<<endl; for(int i=1;i<=temp;i++) if(abs(2*cun[i]-2*cun[tem]-i+tem)>=2&&i-tem>=21&&(cun[i]-cun[tem]>=21||(i-tem)-(cun[i]-cun[tem])>=21)) {cout<<cun[i]-cun[tem]<<":"<<i-tem-cun[i]+cun[tem]<<endl; tem=i;} cout<<cun[temp]-cun[tem]<<":"<<temp-tem-cun[temp]+cun[tem]<<endl; // system("pause"); } return 0; }