国际乒联如今主席沙拉拉自从上任以来就立志于推行一系列改革,以推进乒乓球运动在全球的普及。其中11分制改革引发了很大的争议,有一部分球员由于没法适应新规则只能选择退役。华华就是其中一位,他退役以后走上了乒乓球研究工做,意图弄明白11分制和21分制对选手的不一样影响。在开展他的研究以前,他首先须要对他多年比赛的统计数据进行一些分析,因此须要你的帮忙。
华华经过如下方式进行分析,首先将比赛每一个球的胜负列成一张表,而后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。ios
好比如今有这么一份记录,(其中W表示华华得到一分,L表示华华对手得到一分):c++
WWWWWWWWWWWWWWWWWWWWWWLW
算法
在1111分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。若是一局比赛刚开始,则此时比分为0比0。直到分差大于或者等于2,才一局结束。spa
你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。code
每一个输入文件包含若干行字符串,字符串有大写的W、L和E组成。其中EE表示比赛信息结束,程序应该忽略E以后的全部内容。字符串
输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是11分制下的结果,第二部分是21分制下的结果,两部分之间由一个空行分隔。get
\(\fbox{模拟}\) \(\fbox{字符串处理}\)字符串处理
输入,扫两遍,照着题意来模拟。
\(\fbox{规则:一方得满11分+另外一方与这一方分差>=2}\)it
#include <bits/stdc++.h> using namespace std; unsigned int c[625000]; signed main() { ios::sync_with_stdio(0); char s; long long clength = 0; while(s!='E') { if(s=='W') { c[clength] = 1; clength++; } else if(s=='L') { c[clength] = 2; clength++; } s = getchar(); } if(s=='E') { c[clength] = 9; } long long i = 0; long long w = 0; long long l = 0; long long d = 0; while(c[i]!=9) { if(c[i]==1) { w++; } else if(c[i]==2) { l++; } if((l>=11||w>=11)&&(abs(w-l)>=2)) { printf("%lld:%lld\n",w,l); w = 0; l = 0; d++; } i++; } if(d*11!=clength-1) { printf("%lld:%lld\n\n",w,l); } i = 0;w = 0;l = 0;d = 0; while(c[i]!=9) { if(c[i]==1) { w++; } else if(c[i]==2) { l++; } if((l>=21||w>=21)&&(abs(w-l)>=2)) { printf("%lld:%lld\n",w,l); w = 0; l = 0; d++; } i++; } if(d*21!=clength-1) { printf("%lld:%lld\n\n",w,l); } }