题解:P12063 [THUPC 2025 决赛] 我的围棋

· · 题解

用两个变量记录过程中提子的总数即可。

注意千万不要在其中一方的棋盖中的棋子数 >M 时就立刻输出答案,一定趁着对手接水的时候向裁判举报。

我围棋下得太烂了,大家可能还是不会这道题。如果有问题就问围棋世界冠军 ByunSangil 吧。

#include<bits/stdc++.h>
#define ll long long
#define int ll
#define rep(x,y,z) for(int x=(y);x<=(z);x++)
#define per(x,y,z) for(int x=(y);x>=(z);x--)
#define repn(x) rep(x,1,n)
#define repm(x) rep(x,1,m)
inline int read(){int s=0,w=1;char c=getchar();while(c<48||c>57) {if(c=='-') w=-1;c=getchar();}while(c>=48&&c<=57)s=(s<<1)+(s<<3)+c-48,c=getchar();return s*w;}
inline void pf(int x){if(x<0) putchar('-'),x=-x;if(x>9)pf(x/10);putchar(x%10+48);}
using namespace std;
const int N=5e5+5,M=1e7+5,inf=(1LL<<31)-1,mod=998244353;
const ll llf=1e18;
int n,m,a[N],A,B;
inline void Main(){
    n=read(),m=read();
    int fl=-1;
    repn(i){
        a[i]=read();
        if(i&1)A+=a[i];
        else B+=a[i];
        if(A>m){
            if(fl==-1)fl=0;
        }
        if(B>m){
            if(fl==-1)fl=1;
        }
    }
    if(fl==1)cout <<"Black";
    else if(fl==0)cout <<"White";
    else puts("Draw");
}
signed main(){
    int T=1;
    while(T--)Main();
    return 0;
}