Cod sursa(job #1280545)

Utilizator robx12lnLinca Robert robx12ln Data 2 decembrie 2014 08:06:56
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.95 kb
#include<fstream>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int a[1027],b[1027],g[1027],u[1027],x,y,U,G,j,ii,nr,r,i,n,k,m;
int main(){
    fin>>n>>m;
    for(ii=1;ii<=m;ii++){
        fin>>k;
        for(i=1;i<=k;i++){
            fin>>a[i];
        }
        for(i=1;i<=k;i++){
            fin>>b[i];
        }
        fin>>r;
        if(r==0){
            for(i=1;i<=k;i++){
                g[a[i]]=1;
                g[b[i]]=1;
                u[a[i]]=1;
                u[b[i]]=1;
            }
        }
        if(r==1){
            for(i=1;i<=k;i++){
                if(g[a[i]]==0)
                    g[a[i]]=2;
                if(u[b[i]]==0)
                    u[b[i]]=2;
            }
            for(i=1;i<=n;i++){
                if(g[i]!=2){
                    g[i]=1;
                }else{
                    g[i]=0;
                }
                if(u[i]!=2){
                    u[i]=1;
                }else
                    u[i]=0;
            }
        }
        if(r==2){
            for(i=1;i<=k;i++){
                if(g[b[i]]==0)
                    g[b[i]]=2;
                if(u[a[i]]==0)
                    u[a[i]]=2;
            }
            for(i=1;i<=n;i++){
                if(g[i]!=2){
                    g[i]=1;
                }else{
                    g[i]=0;
                }
                if(u[i]!=2){
                    u[i]=1;
                }else
                    u[i]=0;
            }
        }
    }
    for(i=1;i<=n;i++){
        if(g[i]==0){
            x=i;
            G++;
        }
        if(u[i]==0){
            y=i;
            U++;
        }
    }
    if(U==1 && G==0){
        fout<<y;
    }else{
        if(U==0 && G==1){
            fout<<x;
        }
        if(U==1 && G==1 && x==y){
            fout<<x;
        }
        if(U==1 && G==1){
            fout<<0;
        }
    }
    return 0;
}