[luogu]1042乒乓球 (模拟)

传送: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;
            }
    }

} 
满堂花醉三千客,一剑霜寒十四州
原文地址:https://www.cnblogs.com/phemiku/p/11266364.html