Cod sursa(job #1061315)

Utilizator SagunistuStrimbu Alexandru Sagunistu Data 19 decembrie 2013 16:15:13
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.63 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

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

int main()
{
    ifstream fin("balanta.in");
    ofstream fout("balanta.out");
    int n,m,i,j,k,r,p,nr=0,nr1=0,p1,l,n1=0,n2=0;
    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;
                a1[s[j]]=-1;
                a1[d[j]]=-1;
            }
        }
        else
        if(r==1)
        {
            for(j=1;j<=k;j++)
                if(a[s[j]]==n1)
                    a[s[j]]=n1+1;
            n1++;
            for(j=1;j<=k;j++)
                if(a1[d[j]]==n2)
                    a1[d[j]]=n2+1;
            n2++;
        }
        else
        if(r==2)
        {
            for(j=1;j<=k;j++)
                if(a[d[j]]==n1)
                    a[d[j]]=n1+1;
            n1++;
            for(j=1;j<=k;j++)
                if(a1[s[j]]==n2)
                    a1[s[j]]=n2+1;
            n2++;
        }
    }
    for(i=1;i<=n;i++)
    {
        if(a[i]==n1)
        {
            nr++;
            p=i;
        }
    }
    for(i=1;i<=n;i++)
        {
            if(a1[i]==n2)
            {
                nr1++;
                p1=i;
            }
        }
    if(nr==1&&nr1==0)
        fout<<p;
    else
    if(nr==0&&nr1==1)
        fout<<p1;
    else
        fout<<0;
    return 0;
}