Pagini recente » Cod sursa (job #2670124) | Borderou de evaluare (job #489519) | Cod sursa (job #2877565) | Borderou de evaluare (job #671161) | Cod sursa (job #2547782)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int n,m,caz,k,nr1,nr2;
int fr1[1030],fr2[1030],fr[1030],v[2060];
int main(){
fin>>n>>m;
for(int i=1;i<=n;i++)
fr1[i]=fr2[i]=1;
for(int i=1;i<=m;i++){
fin>>k;
for(int j=1;j<=n;j++)
fr[j]=0;
for(int j=1;j<=2*k;j++){
fin>>v[j];
fr[v[j]]=1;
}
fin>>caz;
if(caz==0){
for(int j=1;j<=2*k;j++)
fr1[v[j]]=fr2[v[j]]=0;
continue;
}
if(caz==1){
for(int j=1;j<=k;j++){
fr1[v[j]]=0;
fr2[v[k+j]]=0;
}
for(int j=1;j<=n;j++){
if(fr[j]!=1){
fr1[j]=fr2[j]=0;
}
}
continue;
}
if(caz==2){
for(int j=k+1;j<=k*2;j++){
fr1[v[j]]=0;
fr2[v[j-k]]=0;
}
for(int j=1;j<=n;j++){
if(fr[j]!=1){
fr1[j]=fr2[j]=0;
}
}
}
}
for(int i=1;i<=n;i++){
if(fr1[i]==1)
nr1++;
if(fr2[i]==1)
nr2++;
}
if(nr1+nr2!=1){
fout<<0;
}
else{
for(int i=1;i<=n;i++){
if(fr1[i]==1 || fr2[i]==1){
fout<<i;
break;
}
}
}
return 0;
}