Cod sursa(job #1179624)

Utilizator EpictetStamatin Cristian Epictet Data 28 aprilie 2014 22:55:05
Problema Balanta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int n,m,k,rez,nr1,nr2,sol1,sol2,G[1050],U[1050],V[1050];
int main()
{
    fin >> n >> m;
    for(int i=1; i<=n; i++) G[i]=U[i] = 1;
    for(int i=1; i<=m; i++)
    {
        fin >> k;
        for(int j=1; j<=k*2; j++) fin >> V[j];
        fin >> rez;

        if(!rez)
        {
            for(int j=1; j<=k*2; j++) G[V[j]] = 0, U[V[j]] = 0;
        }
        else if(rez == 1)
        {
            for(int j=1; j<=k; j++) U[V[j]] = 0;
            for(int j=k+1; j<=k*2; j++) G[V[j]] = 0;
        }
        else
        {
            for(int j=1; j<=k; j++) G[V[j]] = 0;
            for(int j=k+1; j<=k*2; j++) U[V[j]] = 0;
        }
    }

    for(int i=1; i<=n; i++)
    {
        if(G[i] == 1) nr1++, sol1 = i;
        if(U[i] == 1) nr2++, sol2 = i;
    }

    if(nr1 == 1) fout << sol1 << '\n';
    else if(nr2 == 1) fout << sol2 << '\n';
    else fout << "0\n";

    fout.close();
    return 0;
}