Pagini recente » Cod sursa (job #216978) | Borderou de evaluare (job #1985280) | Cod sursa (job #2977611) | Cod sursa (job #135773) | Cod sursa (job #189363)
Cod sursa(job #189363)
#include<stdio.h>
#include<iostream.h>
#define NMAX 2024
int n,m,k;
int A[NMAX+1], B[NMAX+1];
int stiva[NMAX+1]; int cntA,cntB,tip;
void functie(int v[], int &cnt, int start)
{
int aux[NMAX+1],i;
for(i=1;i<=n;i++) aux[i]=0;
for(i=start; i<start+k; i++)
aux[ stiva[i] ] = 1;
for(i=1; i<=n; i++)
if(aux[i]==0 && v[i]==1) { v[i]=0; cnt--; }
}
void cauta(int v[])
{
for(int i=1; i<=n; i++) if(v[i]==1) printf("%d\n",i);
}
int main()
{
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);
scanf("%d %d", &n,&m); int i;
for(i=1; i<=n; i++) { A[i]=1; B[i]=1; } cntA=n; cntB=n;
while(m--)
{
scanf("%d", &k);
for(i=1; i<=(k<<1); i++) scanf("%d", &stiva[i]);
scanf("%d", &tip);
if(tip==1) { functie(A,cntA,1); functie(B,cntB,k+1); }
if(tip==2) { functie(A,cntA,k+1); functie(B,cntB,1); }
if(tip==0)
for(i=1; i<=(k<<1); i++)
if( A[ stiva[i] ] == 1 ) { A[ stiva[i] ]=0; cntA--; }
if( B[ stiva[i] ] == 1 ) { B[ stiva[i] ]=0; cntB--; }
}
if(cntA==1 && cntB==0) cauta(A);
else
if(cntB==1 && cntA==0) cauta(B);
else
printf("0\n");
return 0;
}