Cod sursa(job #1573608)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 19 ianuarie 2016 20:16:44
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.73 kb
# include <fstream>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int st[1400],dr[1400],u[1400],g[1400],n,m,h,val,nr,j,poz,i,x;
int main () {
    fin>>n>>m;
    for(i=1;i<=n;i++){
        u[i]=1;
        g[i]=1;
    }
    for(j=1;j<=m;j++){
        fin>>nr;
        for(i=1;i<=n;i++){
            st[i]=0;
            dr[i]=0;
        }
        for(i=1;i<=nr;i++){
            fin>>x;
            st[x]=1;
        }
        for(i=1;i<=nr;i++){
            fin>>x;
            dr[x]=1;
        }
        fin>>val;
        if(val==0){
            for(i=1;i<=n;i++){
                if(st[i]==1||dr[i]==1){
                    u[i]=0;
                    g[i]=0;
                }
            }
            continue;
        }
        if(val==1){
            for(i=1;i<=n;i++){
                if(st[i]==1)
                    u[i]=0;
                if(dr[i]==1)
                    g[i]=0;
                if(st[i]+dr[i]==0){
                    g[i]=0;
                    u[i]=0;
                }
            }
        }
        else{
            for(i=1;i<=n;i++){
                if(st[i]==1)
                    g[i]=0;
                if(dr[i]==1)
                    u[i]=0;
                if(st[i]+dr[i]==0){
                    g[i]=0;
                    u[i]=0;
                }
            }
        }
    }
    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;
}