AFO

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;
}
posted @ 2019-09-16 18:56  ZUTTER☮  阅读(128)  评论(0编辑  收藏  举报