题解 | #A World Final? World Cup! (I)#2023牛客寒假算法基础集训营1

题目网址

https://ac.nowcoder.com/acm/contest/46800/A

附图

写的一般,参考即可

思路是

分别记录双方赢的场次

1.当双方比分差距超过3就没必要比了,直接结束

2.计算如果一方赢下接下来的所有比赛能不能赶上甚至超过对方,如果可以,继续执行循环;不行的话直接结束比赛

3.所有比赛结束,双方比分相等的话就打平,输出-1就行

#include <iostream>
using namespace std;

int main() {
    int t,m,n,flag,mm,nn;
    string a;
    cin>>t;
    while(t--){
        m=0;n=0;flag=0;mm=0;nn=0;
        cin>>a;
        for(int i=0;i<=9;i++){
            if(i%2==0){
                if(a[i]=='1'){
                    m++;
                }
                mm++;
            }else{
                if(a[i]=='1'){
                    n++;
                }
                nn++;
            }
            if((m-n>=3||n-m>=3)&&i%2==1){
                flag=i+1;
                break;
            }
            if(m>n+5-nn||n>m+5-mm){
                flag=i+1;
                break;
            }
        }
        if(m==n){
            cout<<"-1"<<endl;
        }else if(flag!=0){
            cout<<flag<<endl;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_45940369/article/details/128710084
今日推荐