洛谷P1042 乒乓球

https://www.luogu.org/problem/P1042

#include<bits/stdc++.h>
using namespace std;
int win[62503];
int w,l;
int main() {
    char s;        //因为都为单个字符,所以用char 
    for(int i=1; cin>>s&&s!='E'; i++) { //循环读入,当读到字符E结束
        if(s=='W')win[i]=1;     //1表示胜,2表示负
        else win[i]=2;
    }
    //先搞11分制的
    for(int i=1; 1; i++) {
        if(win[i]==1)
            w++;//胜场+1
        if(win[i]==2)
            l++;//负场+1
        if(win[i]==0) { //读到0则记录结束,输出记录结束前的分数。
            cout<<w<<":"<<l<<endl<<endl;
            w=0;
            l=0;  //清零 
            break;
        }
        if((w-l>=2||l-w>=2)&&(w>=11||l>=11)) { //当双方比分相差大于2且一方分数大等于11输出
            cout<<w<<":"<<l<<endl;
            w=0;//比分清零
            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;
            }
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/QingyuYYYYY/p/11704966.html