比赛 20120711 评测结果 AAAWWWWWWWWA
题目名称 平衡奶牛 最终得分 33
用户昵称 Czb。 运行时间 0.407 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2012-07-11 09:28:15
显示代码纯文本
#include<stdio.h>
#include<map>

using namespace std;

int n,k,a,tmp,ans;

map <int,int> s;

inline int max(int a,int b)
{
	return a>b?a:b;
}

inline int min(int a,int b)
{
	return a<b?a:b;
}

int main()
{
	freopen("balline.in","r",stdin);
	freopen("balline.out","w",stdout);
	int i;
	scanf("%d%d",&n,&k);
	k=(1<<k)-1;
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a);
		tmp^=a;
		if(a==0||a==k)
		{
			ans=i;
		}
		else
		{
			if(s[tmp]==0)
				s[tmp]=i;
			int Min=0x7FFFFFFF;
			if(s[tmp])
				Min=min(Min,s[tmp]);
			if(s[k^tmp])
				Min=min(Min,s[k^tmp]);
			ans=max(ans,i-Min);
		}
	}
	if(ans==0)
		ans=1;
	printf("%d\n",ans);
	return 0;
}