Cod sursa(job #1288021)

Utilizator MihneaGhiraMihnea MihneaGhira 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;
}