传送:https://www.luogu.org/problem/P1042
只能说自己的码力还是太弱,自己的想法实现不了,这篇题解倒是帮忙实现了(看来我的想法没错hhh),暂且摘来一用
#include <bits/stdc++.h> using namespace std; int win[65656]; //第一次数组开小,但是挺意外6万竟然能过_(:3/_)__ int w,l; int main() { char s; for(int i=1;cin>>s&&s!='E';i++) //这个输入判定很新奇 { if(s=='W')win[i]=1; else win[i]=2; } //11分制// for(int i=1;;i++) { if(win[i]==1)w++; if(win[i]==2)l++; if(win[i]==0) { //可能并没有分出胜负,但现在是结束的时刻了! cout<<w<<":"<<l<<endl<<endl; break; } if(w-l>=2||l-w>=2) //这句如果不加就会WA好几个点……(待研究……) if(w>=11||l>=11) { cout<<w<<":"<<l<<endl; w=0; l=0; } } w=0; //清零以便记21分制 l=0; //接下来是21分制// for(int i=1;1;i++) { if(win[i]==1)w++; if(win[i]==2)l++; if(win[i]==0) { cout<<w<<":"<<l; break; } if(w-l>=2||l-w>=2) if(w>=21||l>=21) { cout<<w<<":"<<l<<endl; w=0; l=0; } } }