CF1215D
CF1215D
两个整数的和是偶数,他们的差也是偶数
博弈好难啊qaq 我好zz啊qaq
如果M放最后一个M胜
现在和比较大的一边如果空位还多的话M胜
M可以通过在大的那边放9来消掉那边所有的空
由于第一句话(...)这之后还是M先手
由于M会放些什么数是不可控的,所以唯一有把握的就是无论他放什么B都可以把它凑成9
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,m,a[1000001],s1,s2,k1,k2,k;
char c[1000001];
int main()
{
scanf("%d",&n);
scanf("\n%s",c+1);
for(int i=1;i<=n;i++)
{
if(c[i]=='?')
{
if(i<=n/2) k1+=1;
else k2+=1;
k+=1;
continue;
}
else if(i<=n/2) s1+=c[i]-'0';
else s2+=c[i]-'0';
}
if(k&1)
{
printf("Monocarp");
return 0;
}
if(s1<s2) swap(s1,s2), swap(k1,k2);
if(k1>k2)
{
printf("Monocarp");
return 0;
}
int s=s1-s2;
k2-=k1;
if(s1-s2!=(k2/2)*9)
{
printf("Monocarp");
return 0;
}
printf("Bicarp");
return 0;
}