國際乒聯如今主席沙拉拉自從上任以來就立志於推行一系列改革,以推進乒乓球運動在全球的普及。其中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); } }