Pagini recente » Cod sursa (job #2903010) | Cod sursa (job #2681226) | Cod sursa (job #2109911) | Cod sursa (job #239237) | Cod sursa (job #68956)
Cod sursa(job #68956)
#include <cstdio>
#include <string>
#define fin "balanta.in"
#define fout "balanta.out"
#define Nmax 1025
int N,M,K,v1[Nmax],v2[Nmax];
int main() {
int i,j,a[Nmax],b[Nmax],tmp[Nmax];
int opt,pos1,pos2;
freopen(fin,"r",stdin); freopen(fout,"w",stdout);
scanf("%d%d",&N,&M);
for (i=1;i<=N;++i)
v1[i]=v2[i]=1;
for (i=1;i<=M;++i) {
scanf("%d",&K);
for (j=1;j<=K;++j)
scanf("%d",&a[j]);
for (j=1;j<=K;++j)
scanf("%d",&b[j]);
scanf("%d",&opt);
if (opt==0)
for (j=1;j<=K;++j) {
v1[a[j]]=v1[b[j]]=0;
v2[b[j]]=v2[a[j]]=0;
}
if (opt==1) {
memset(tmp,0,sizeof(tmp));
for (j=1;j<=K;++j)
tmp[a[j]]=1;
for (j=1;j<=N;++j)
v1[j]&=tmp[j];
memset(tmp,0,sizeof(tmp));
for (j=1;j<=K;++j)
tmp[b[j]]=1;
for (j=1;j<=N;++j)
v2[j]&=tmp[j];
}
if (opt==2) {
memset(tmp,0,sizeof(tmp));
for (j=1;j<=K;++j)
tmp[b[j]]=1;
for (j=1;j<=N;++j)
v1[j]&=tmp[j];
memset(tmp,0,sizeof(tmp));
for (j=1;j<=K;++j)
tmp[a[j]]=1;
for (j=1;j<=N;++j)
v2[j]&=tmp[j];
}
}
pos1=0; pos2=0;
for (i=1;i<=N;++i) {
if (v1[i]==1)
if (pos1>0)
pos1=-1;
else
if (pos1==0)
pos1=i;
if (v2[i]==1)
if (pos2>0)
pos2=-1;
else
if (pos2==0)
pos2=i;
}
if (pos1 > 0 && pos2 > 0 && pos1!=pos2)
pos1=pos2=-1;
if (pos1<=0)
pos1=pos2;
if (pos1<0)
pos1=0;
printf("%d\n",pos1);
return 0;
}