Pagini recente » Cod sursa (job #1425322) | Cod sursa (job #2818509) | Cod sursa (job #203287) | Cod sursa (job #2678996) | Cod sursa (job #955565)
Cod sursa(job #955565)
#include <cstdio>
#include <fstream>
#include <vector>
using namespace std;
int main()
{
FILE* f=fopen("balanta.in","r");
ofstream g("balanta.out");
size_t n,m;
fscanf(f,"%d%d",&n,&m);
vector<bool> hv(n+1,1),lv(n+1,1);
while(m--){
vector<bool> a(n+1,0),b(n+1,0);
int k;
fscanf(f,"%d",&k);
for(size_t i=0;i<k;i++){
int x;
fscanf(f,"%d",&x);
a[x]=1;
}
for(size_t i=0;i<k;i++){
int x;
fscanf(f,"%d",&x);
b[x]=1;
}
int st;
fscanf(f,"%d",&st);
switch(st){
case 0:
for(size_t i=1;i<=n;i++)
if(a[i]||b[i])
hv[i]=lv[i]=0;
break;
case 1:
for(size_t i=1;i<=n;i++){
if(hv[i]&&!a[i])
hv[i]=0;
if(lv[i]&&!b[i])
lv[i]=0;
}
break;
case 2:
for(size_t i=1;i<=n;i++){
if(lv[i]&&!a[i])
lv[i]=0;
if(hv[i]&&!b[i])
hv[i]=0;
}
break;
}
}
int hvc=0,lvc=0;
int x,y;
for(size_t i=1;i<=n;i++)
if(hv[i]){
hvc++;
x=i;
}
for(size_t i=1;i<=n;i++)
if(lv[i]){
lvc++;
y=i;
}
if(hvc==1&&!lvc){
g<<x;
return 0;
}
if(lvc==1&&!hvc){
g<<y;
return 0;
}
g<<0;
return 0;
}