记录编号 351494 评测结果 AA
题目名称 取火柴游戏 最终得分 100
用户昵称 GravatarZwoi_只会打表抄代码的蒟蒻 是否通过 通过
代码语言 C 运行时间 0.000 s
提交时间 2016-11-16 16:40:20 内存使用 0.31 MiB
显示代码纯文本
#include <stdio.h>
#include <math.h>
int k,a[500][10],b[10],x[10],y[10],p,j,i,t,h[500],d,l,q;
int main()
{
	freopen("matchi.in","r",stdin);
	freopen("matchi.out","w",stdout);
	scanf("%d",&k);
    p=9;
	for(i=1;i<=k;i++)
	{
		scanf("%d",&b[i]);
		t=b[i];
		j=9;
		while(t)
		{
			a[i][j]=t%2;
			j--;
			t>>=1;
		}
        if(j<p)
			{
				p=j+1;	
                q=i;
		    } 				
	}
	t=0;
	for(i=p;i<=9;i++)
	{
		for(j=1;j<=k;j++)
			x[i]+=a[j][i];
		if(x[i]%2)
		{
			y[i]=1;
			t++;
		}
	}
	if(!t)
	{
		printf("lose");
		return 0;
	}
	/*t=-1;
	for(i=p;i<10;i++)
		if(y[i])
		{
			if(t==-1)
				for(j=1;j<=k;j++)
			    {
					if(a[j][i])
				    {
						t=j;
						for(l=0;l<10;l++)
							h[l]=a[t][l];
						break;
				    }
		     	}
			h[i]=!h[i];
		}*/
	for(i=p;i<10;i++)
	{
		h[i]=a[q][i];
		if(y[i])
			h[i]=!h[i];
		d+=h[i]*pow(2,9-i);
	}
	printf("%d %d\n",b[q]-d,q);
	b[q]=d;
	for(i=1;i<=k;i++)
		printf("%d ",b[i]);
	return 0;
}