Cod sursa(job #1513863)

Utilizator refugiatBoni Daniel Stefan refugiat Data 30 octombrie 2015 09:27:50
Problema Balanta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.43 kb
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
//FILE*si=fopen("pom.in","r");
ifstream si("balanta.in");
ofstream so("balanta.out");
int gr[1026],tal1[514],tal2[514],l;
int main()
{
    int n,c;
    si>>n>>c;
    int i,j;
    int fel;

    for(i=0;i<c;++i)
    {
        si>>l;
        for(j=0;j<l;++j)
            si>>tal1[j];
        for(j=0;j<l;++j)
            si>>tal2[j];
        si>>fel;
        if(fel==0)
        {
            for(j=0;j<l;++j)
            {
                gr[tal1[j]]=-1;
                gr[tal2[j]]=-1;
            }
        }
        else
        {
            if(fel==1)
            {
                for(j=0;j<l;++j)
                {
                    if(gr[tal1[j]]==1||gr[tal1[j]]==0)
                    {
                        gr[tal1[j]]=1;
                    }
                    else
                        gr[tal1[j]]=-1;
                }


                for(j=0;j<l;++j)
                {
                    if(gr[tal2[j]]==2||gr[tal2[j]]==0)
                    {
                        gr[tal2[j]]=2;
                    }
                    else
                        gr[tal2[j]]=-1;
                }

            }
            else
            {

                for(j=0;j<l;++j)
                {
                    if(gr[tal1[j]]==2||gr[tal1[j]]==0)
                    {
                        gr[tal1[j]]=2;
                    }
                    else
                        gr[tal1[j]]=-1;
                }


                for(j=0;j<l;++j)
                {
                    if(gr[tal2[j]]==1||gr[tal2[j]]==0)
                    {
                        gr[tal2[j]]=1;
                    }
                    else
                        gr[tal2[j]]=-1;
                }

            }
        }
    }
    int l1=0,l2=0,l0=0,p1,p0,p2;
    for(i=1;i<=n;++i)
    {
        //so<<gr[i]<<' ';
        if(gr[i]==1)
        {
            p1=i;
            l1++;
        }
        else if(gr[i]==2)
        {
            p2=i;
            l2++;
        }
        else if(gr[i]==0)
        {
            p0=i;
            ++l0;
        }
    }
    if(l1==1&&l0==0&&l2!=1)
        so<<p1;
    else if(l2==1&&l0==0&&l1!=1)
        so<<p2;
    else if(l0==1&&l1==0&&l2==0)
        so<<p0;
    else so<<0;
    so<<'\n';
    so.close();
//    fclose(si);
    return 0;
}