Cod sursa(job #1572744)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 19 ianuarie 2016 08:45:52
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include<fstream>

using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int u[1030], g[1030], s[1030], d[1030],x,m,n,i,k,h,r,nr;

int main() {
    fin>>n>>m;
    for(i=1;i<=n;i++)
    {
        u[i]=1;
        g[i]=1;
    }
    for(h=1;h<=m;h++)
    {
        for(i=1;i<=n;i++)
        {
            s[i]=0;
            d[i]=0;
        }
        fin>>k;
        for(i=1;i<=k;i++){
            fin>>x;s[x]=1;
        }
        for(i=1;i<=k;i++){
            fin>>x;d[x]=1;
        }
        fin>>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(s[i]==1)
                    g[i]=0;
                if(d[i]==1)
                    u[i]=0;
                if(s[i]==0&&d[i]==0)
                    u[i]=g[i]=0;
            }
        }
    }
    for(i=1;i<=n;i++)
    {
        if(u[i]==1)
        {
            nr++;
            x=i;
        }
        if(g[i]==1)
        {
            nr++;
            x=i;
        }
    }
    if(nr==1)
        fout<<x;
    else
        fout<<0;
    fin.close();
    fout.close();
    return 0;
}