Cod sursa(job #1573610)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 19 ianuarie 2016 20:19:29
Problema Balanta Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.44 kb
# include <fstream>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int n,m,st[1400],dr[1400],g[1400],u[1400],i,j,val,nr,cg[1400],cu[1400],h,poz;
int main () {
    fin>>n>>m;
    for(j=1;j<=m;j++){
        fin>>nr;
        for(i=1;i<=nr;i++){
            fin>>st[i];
        }
        for(i=1;i<=nr;i++){
            fin>>dr[i];
        }
        fin>>val;
        if(val==0){
            for(i=1;i<=nr;i++){
                cu[st[i]]=1;
                cu[st[i]]=1;
                cg[dr[i]]=1;
                cg[dr[i]]=1;
                u[st[i]]=0;
                g[st[i]]=0;
                u[dr[i]]=0;
                g[dr[i]]=0;
                st[i]=0;
                dr[i]=0;
            }
            continue;
        }
        if(val==1){
            for(i=1;i<=nr;i++){
                cu[st[i]]=1;
                cg[dr[i]]=1;
                u[st[i]]=0;
                if(cg[st[i]]!=1)
                    g[st[i]]=-1;
                if(cu[dr[i]]!=1)
                    u[dr[i]]=-1;
                g[dr[i]]=0;
                st[i]=0;
                dr[i]=0;
            }
            for(i=1;i<=n;i++){
                if(u[i]!=-1)
                    u[i]=0;
                else
                    u[i]*=-1;
                if(g[i]!=-1)
                    g[i]=0;
                else
                    g[i]*=-1;
            }
        }
        else{
            for(i=1;i<=nr;i++){
                cg[st[i]]=1;
                cu[dr[i]]=1;
                g[st[i]]=0;
                if(cu[st[i]]!=1)
                    u[st[i]]=-1;
                if(cg[dr[i]]!=1)
                    g[dr[i]]=-1;
                g[dr[i]]=-1;
                u[dr[i]]=0;
                st[i]=0;
                dr[i]=0;
            }
            for(i=1;i<=n;i++){
                if(u[i]!=-1)
                    u[i]=0;
                else
                    u[i]*=-1;
                if(g[i]!=-1)
                    g[i]=0;
                else
                    g[i]*=-1;
            }
        }
    }
    for(i=1;i<=n;i++){
        if(g[i]==1){
            h++;
            poz=i;
            if(h>1)
                break;
        }
        if(u[i]==1){
            h++;
            poz=i;
            if(h>1)
                break;
        }
    }
    if(h>1)
        fout<<0<<"\n";
    else
        fout<<poz<<"\n";
    return 0;
}