Cod sursa(job #1571640)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 18 ianuarie 2016 11:48:46
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.1 kb
#include <fstream>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int g[1100],u[1100],n,m,i,k,r,a[1100],b[1100],G,U,mon,j,x;
int main()
{
    fin>>n>>m;
    for(i=1;i<=n;i++)
    {
        u[i]=1;
        g[i]=1;
    }
    for(i=1;i<=m;i++)
    {
        fin>>k;
        for(j=1;j<=n;j++)
        {
            a[j]=0;b[j]=0;
        }
        for(j=1;j<=k;j++)
        {
            fin>>x;
            a[x]=1;
        }
        for(j=1;j<=k;j++)
        {
            fin>>x;
            b[x]=1;
        }
        fin>>r;
        if(r==0)
        {
           for(j=1;j<=n;j++)
           {
               if(a[j]==1||b[j]==1)
               {
                   g[j]=0;
                   u[j]=0;
               }
           }
        }
        if(r==1)
        {
            //tot ce e setat cu 1 in a nu este usor
            //tot ce e setat cu 1 in b nu este grea
            //tot ce e nesetat in ambele nu e nici grea nici usoara
            for(j=1;j<=n;j++)
            {
                if(a[j]==1)
                {
                    u[j]=0;
                }
                if(b[j]==1)
                {
                    g[j]=0;
                }
                if(a[j]+b[j]==0)
                {
                    u[j]=0;
                    g[j]=0;
                }
            }
        }
        if(r==2)
        {
            for(j=1;j<=n;j++)
            {
                if(a[j]==1)
                {
                    g[j]=0;
                }
                if(b[j]==1)
                {
                    u[j]=0;
                }
                if(a[j]+b[j]==0)
                {
                    u[j]=0;
                    g[j]=0;
                }
            }
        }
    }
    for(i=1;i<=n;i++)
    {
        if(g[i]==1)
        {
            G++;
            mon=i;
        }
        if(u[i]==1)
        {
            U++;
            mon=i;
        }
    }
    if(G+U==1)
    {
        fout<<mon;
    }
    else
    {
        fout<<0;
    }
    return 0;
}