Cod sursa(job #1061258)

Utilizator SagunistuStrimbu Alexandru Sagunistu Data 19 decembrie 2013 15:20:30
Problema Balanta Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.77 kb
#include <iostream>
#include <fstream>

using namespace std;

int a[1100];
int s[1100],d[1100],n;

int main()
{
    ifstream fin("balanta.in");
    ofstream fout("balanta.out");
    int m,i,j,k,r,p,nr=0,l;
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>k;
        for(j=1;j<=k;j++)
            fin>>s[j];
        for(j=1;j<=k;j++)
            fin>>d[j];
        fin>>r;
        if(r==0)
        {
            for(j=1;j<=k;j++)
            {
                a[s[j]]=-1;
                a[d[j]]=-1;
            }
        }
        else
        if(r==1)
        {
            for(j=1;j<=k;j++)
            {
                if(a[s[j]]==2)
                    a[s[j]]=-1;
                else
                if(a[s[j]]!=-1)
                    a[s[j]]=1;
                if(a[d[j]]==1)
                    a[d[j]]=-1;
                else
                if(a[d[j]]!=-1)
                    a[d[j]]=2;
            }

        }
        else
        if(r==2)
        {
            for(j=1;j<=k;j++)
            {
                if(a[d[j]]==2)
                    a[d[j]]=-1;
                else
                if(a[d[j]]!=-1)
                    a[d[j]]=1;
                if(a[s[j]]==1)
                    a[s[j]]=-1;
                else
                if(a[s[j]]!=-1)
                    a[s[j]]=2;
            }
            for(j=1;j<=k;j++)
            {
                for(l=1;l<=n;l++)
                {
                    if(d[j]!=l&&s[j]!=l)
                        a[l]=0;
                }
            }
        }
    }
    for(i=1;i<=n;i++)
    {
        if(a[i]>=1)
        {
            nr++;
            p=i;
        }
    }
    if(nr==1)
        fout<<p;
    else
        fout<<0;
    return 0;
}