Cod sursa(job #1572745)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 19 ianuarie 2016 08:45:55
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.58 kb
#include <cstdio>

using namespace std;
int u[1030],g[1030],s[1030],d[1030];
int main (){

    FILE *fin=fopen ("balanta.in","r");
    FILE *fout=fopen ("balanta.out","w");
    int n,m,i,h,x,nr,k,r;
    fscanf (fin,"%d%d",&n,&m);
    for (i=1;i<=n;i++)
        u[i]=g[i]=1;
    for (h=1;h<=m;h++){
        for (i=1;i<=n;i++)
            s[i]=d[i]=0;
        fscanf (fin,"%d",&k);
        for (i=1;i<=k;i++){
            fscanf (fin,"%d",&x);
            s[x]=1;
        }
        for (i=1;i<=k;i++){
            fscanf (fin,"%d",&x);
            d[x]=1;
        }
        fscanf (fin,"%d",&r);
        if (r==0){
            for (i=1;i<=n;i++){
                if (s[i]==1 || d[i]==1)
                    u[i]=g[i]=0;
            }
        }
        if (r==1){
            for (i=1;i<=n;i++){
                if (s[i]==1)
                    u[i]=0;
                if (d[i]==1)
                    g[i]=0;
                if (s[i]==0 && d[i]==0)
                    u[i]=g[i]=0;
            }
        }
        if (r==2){
            for (i=1;i<=n;i++){
                if (d[i]==1)
                    u[i]=0;
                if (s[i]==1)
                    g[i]=0;
                if (s[i]==0 && d[i]==0)
                    u[i]=g[i]=0;
            }
        }
    }
    nr=0;
    for (i=1;i<=n;i++){
        if (u[i]==1) {
            nr++;
            x=i;
        }
        if (g[i]==1){
            nr++;
            x=i;
        }
    }
    if (nr==1)
        fprintf (fout,"%d",x);
    else
        fprintf (fout,"0");
    return 0;
}