Pagini recente » Cod sursa (job #2750979) | Cod sursa (job #2509786) | Cod sursa (job #179367) | Cod sursa (job #2274278) | Cod sursa (job #29757)
Cod sursa(job #29757)
#include<stdio.h>
int n,m,k,a[1024],b[1024],r,h[1024],l[1024];
void citire()
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
h[i]=l[i]=1;
}
void diferenta()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<k;j++)
if(i+1==a[j])
h[i]=0;
for(i=0;i<n;i++)
for(j=0;j<k;j++)
if(i+1==a[j])
l[i]=0;
for(i=0;i<n;i++)
for(j=0;j<k;j++)
if(i+1==b[j])
h[i]=0;
for(i=0;i<n;i++)
for(j=0;j<k;j++)
if(i+1==b[j])
l[i]=0;
}
void intersectie1()
{
int i,j,ok;
for(i=0;i<n;i++)
{
ok=0;
for(j=0;j<k;j++)
if(a[j]==i+1&&h[i])
ok=1;
if(ok)
h[i]=1;
else
h[i]=0;
}
for(i=0;i<n;i++)
{
ok=0;
for(j=0;j<k;j++)
if(b[j]==i+1&&l[i])
ok=1;
if(ok)
l[i]=1;
else
l[i]=0;
}
}
void intersectie2()
{
int i,j,ok;
for(i=0;i<n;i++)
{
ok=0;
for(j=0;j<k;j++)
if(b[j]==i+1&&h[i])
ok=1;
if(ok)
h[i]=1;
else
h[i]=0;
}
for(i=0;i<n;i++)
{
ok=0;
for(j=0;j<k;j++)
if(a[j]==i+1&&l[i])
ok=1;
if(ok)
l[i]=1;
else
l[i]=0;
}
}
void rezolva()
{
int i,j,nr1=0,nr2=0,p1,p2;
for(i=0;i<m;i++)
{
scanf("%d",&k);
for(j=0;j<k;j++)
scanf("%d",&a[j]);
for(j=0;j<k;j++)
scanf("%d",&b[j]);
scanf("%d",&r);
if(r==0)
diferenta();
if(r==1)
intersectie1();
if(r==2)
intersectie2();
}
for(i=0;i<n;i++)
if(h[i])
{
nr1++;
p1=i;
}
for(i=0;i<n;i++)
if(l[i])
{
nr2++;
p2=i;
}
if(nr1==nr2)
printf("%d\n",0);
else
{ if(nr1==1)
printf("%d\n",p1+1);
if(nr2==1)
printf("%d\n",p2+1);
}
}
int main()
{
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);
citire();
rezolva();
return 0;
}