Cod sursa(job #2059859)

Utilizator AlexPop28Pop Alex-Nicolae AlexPop28 Data 7 noiembrie 2017 18:10:01
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.23 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin ("balanta.in");
ofstream fout ("balanta.out");
int a[1025],b[1025],m,n,st[513],dr[513],k,i,r,nra,nrb,x,rez1,rez2;
bool ok;
int main()
{
    fin >>n>>m;
    for(int M=1; M<=m; M++)
    {
        fin >> k;
        for(i=1; i<=k; i++)
            fin >> st[i];
        for(i=1; i<=k; i++)
            fin >> dr[i];
        fin >> r;
        if(r==0)
        {
            for(i=1; i<=k; i++)
            {
                a[st[i]]=1;
                a[dr[i]]=1;
                b[st[i]]=1;
                b[dr[i]]=1;
            }
        }
        else if(r==1)
        {
            for(i=1; i<=n; i++)
            {
                ok=1;
                for(int j=1; j<=k; j++)
                {

                    if(i==st[j] || i==dr[j])
                    {
                        ok=0;
                        break;
                    }

                }
                if(ok==1)
                {
                    a[i]=1;
                    b[i]=1;
                }

            }

            for(i=1; i<=k; i++)
            {
                a[dr[i]]=1;
            }
            for(i=1; i<=k; i++)
            {
                b[st[i]]=1;
            }
        }
        else if(r==2)
        {
            for(i=1; i<=n; i++)
            {
                ok=1;
                for(int j=1; j<=k; j++)
                {

                    if(i==dr[j] || i==st[j])
                    {
                        ok=0;

                        break;
                    }
                }
                if(ok==1)
                {
                    a[i]=1;
                    b[i]=1;
                }
            }
            for(i=1; i<=k; i++)
            {

                a[st[i]]=1;
            }
            for(i=1; i<=k; i++)
            {

                b[dr[i]]=1;
            }
        }
    }
    nra=0;
    nrb=0;
    for(i=1; i<=n; i++)
    {
        if(a[i]==0)
        {
            nra++;
            rez1=i;
        }
        if(b[i]==0)
        {
            nrb++;
            rez2=i;
        }
    }
    if(nra == 1 && nrb == 1)
        fout << 0;
    else if(nra==1)
        fout<< rez1;
    else if(nrb==1)
        fout<< rez2;
    else fout <<0;

}