比赛 “Asm.Def战记之夏威夷”杯 评测结果 AWWWWWWWWW
题目名称 Asm.Def的报告 最终得分 10
用户昵称 Collor 运行时间 0.043 s
代码语言 C++ 内存使用 1.07 MiB
提交时间 2015-11-06 10:53:14
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<ctime>
using namespace std;
const int  maxn=100001;
struct bignum
{
	int len;
	int f[25];
}num;
inline int read()
{
	int x=0,f=1;char ch;
	ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-')f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){
		x=(x<<1)+(x<<3)+ch-'0';
		ch=getchar();
	}
	return x*f;
}
int le[maxn],ri[maxn];
int n,m;
void init()
{
	n=read();
	m=read();
	for (int i=1;i<=m;i++) {
		le[i]=read();
		ri[i]=read();
	}
}
void dfs(int d,bignum num)
{
	if (d==m+1){
		for (int i=1;i<=n;i++)
			printf("%d ",num.f[i]);
		printf("\n");
		exit(0);
	}
	if (le[d]<0) {
		if (num.f[-le[d]]==1)goto Tail;
		num.f[-le[d]]=0;
		
	}
	else {
		if (num.f[le[d]]==0)goto Tail;
		num.f[le[d]]=1;
	}
	dfs(d+1,num);
	Tail:
	if (ri[d]<0){ 
		if (num.f[-ri[d]]==1)return ;
		num.f[-ri[d]]=0;
	}
	else {
		if (num.f[ri[d]]==0)return ;
		num.f[ri[d]]=1;
	}
	dfs(d+1,num);
}
int main()
{
	freopen("asm_report.in","r",stdin);
	freopen("asm_report.out","w",stdout);
	init();
	if (n<25) {
		memset(num.f,-1,sizeof(num.f));
		int d=1;
		if (le[d]<0) num.f[-le[d]]=0;
		else num.f[le[d]]=1;
			dfs(d+1,num);
		if (ri[d]<0) num.f[-ri[d]]=0;
		else num.f[ri[d]]=1;
			dfs(d+1,num);
		
	}
	for (int i=1;i<=n;i++)
		printf("1 ");
	cout<<'\n';
	return 0;
}