比赛 |
“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;
}