比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 C
题目名称 Asm.Def的游戏 最终得分 0
用户昵称 啊啦吧啦吧啦 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2015-10-31 09:54:44
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
int n,m,u,v,edge=0;
int link[100010];
int first[100010],next[500010],to[500010];
int xo;
inline int in()
{
	char c;
	int x=0,f=1;
	c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-')f=-1;
		c=getchar();
	}
	for(;c>='0'&&c<='9';c=getchar())x=x*10+c-'0';
	return x*f;
}
void ins(int a,int b)
{
	edge++;
	next[edge]=first[a];
	first[a]=edge;
	to[edge]=b;
	edge++;
	next[edge]=first[b];
	first[b]=edge;
	to[edge]=a;
}
int del()
{
	bool f=1;
	for(int i=1;i<=n;i++)
	{
		if(link[i]<3&&link[i])
		{
			for(int j=first[i];j!=0;j=next[j])
			if(link[to[j]])
				link[to[j]]--;
			link[i]=0;
			f=0;
		}
	}
	return f;
}

int main()
{
	freopen("asm_game.in","r",stdin);
	freopen("asm_game.out","w",stdout);
	n=in();m=in();
	for(int i=1;i<=m;i++)
	{
		u=in();v=in();
		link[u]++;
		link[v]++;
		ins(u,v);
	}
	bool ne=del();
	while(!ne)ne=del();
	
	bool flag=0;
	for(int i=1;i<=n;i++)
	{
		if(link[i]&&link[i]>=3)
			if(!flag)
			{
				xo=i;
				flag=1;
			}
			else
			xo^=i;
	}
	printf("%d",xo);
	fclose(stdin);
	fclose(stdout);
	return 0;
}