Cod sursa(job #1288021)
Utilizator | Data | 8 decembrie 2014 14:05:12 | |
---|---|---|---|
Problema | Balanta | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.54 kb |
#include<fstream>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int n,i,k,c,j,m,M,N1,N2,T;
int H[1025],L[1025],A[1025],B[1025],C[1025];
int main(){
fin>>n>>M;
for(i=1;i<=n;i++){
H[i]=i;
L[i]=i;
}
N1=n;
N2=n;
for(m=1;m<=M;m++){
fin>>k;
for(i=1;i<=k;i++)
fin>>A[i];
for(i=1;i<=k;i++)
fin>>B[i];
fin>>T;
if(T==0){
for(i=1;i<=k;i++){
H[A[i]]=0;
H[B[i]]=0;
L[A[i]]=0;
L[B[i]]=0;
N1-=k*2;
N2-=k*2;
}
}
if(T==1){
c=0;
for(i=1;i<=k;i++){
for(j=1;j<=n;j++){
if(H[j]==A[i]){
C[++c]=A[i];
break;
}
}
}
for(i=1;i<=n;i++)
H[i]=0;
for(i=1;i<=c;i++)
H[C[i]]=C[i];
N1=c;
c=0;
for(i=1;i<=k;i++)
for(j=1;j<=n;j++)
if(L[j]==B[i]){
C[++c]=B[i];
break;
}
for(i=1;i<=n;i++)
L[i]=0;
for(i=1;i<=c;i++)
L[C[i]]=C[i];
N2=c;
}
if(T==2){
c=0;
for(i=1;i<=k;i++){
for(j=1;j<=n;j++){
if(H[j]==B[i]){
C[++c]=B[i];
break;
}
}
}
for(i=1;i<=n;i++)
H[i]=0;
for(i=1;i<=c;i++)
H[C[i]]=C[i];
N1=c;
c=0;
for(i=1;i<=k;i++)
for(j=1;j<=n;j++)
if(L[j]==A[i]){
C[++c]=A[i];
break;
}
for(i=1;i<=n;i++)
L[i]=0;
for(i=1;i<=c;i++)
L[C[i]]=C[i];
N2=c;
}
}
if(N1==1 && N2==0){
for(i=1;i<=n;i++)
if(H[i]!=0){
fout<<H[i];
break;
}
}
if(N2==1 && N1==0){
for(i=1;i<=n;i++)
if(L[i]!=0){
fout<<L[i];
break;
}
}
if(N1!=0 && N2!=0)
fout<<"0";
return 0;
}