Cod sursa(job #2012523)

Utilizator shantih1Alex S Hill shantih1 Data 18 august 2017 22:59:16
Problema Balanta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");

int n, i, j, m, k, r, mi[1100], ma[1100], a[1100], k1, k2, rez;
bool ok1, ok2;

int main () {
    
    fin >> n >> m;
    for (i = 1; i <= m; i++)
    {
        fin >> k;
        for (j = 1; j <= 2*k; j++)
            fin >> a[j];
        fin >> r;
        
        k1 = k2 = 0;
        if (r == 0)
            for (j = 1; j <= 2*k; j++)
                mi[a[j]] = ma[a[j]] = 1;
        
        if (r == 1)
            for (j = 1; j <= 2*k; j++)
            {
                if (j <= k)     {   mi[a[j]] = 1;   if (ma[a[j]] == 0)  k1 = 1; }
                if (j > k)      {   ma[a[j]] = 1;   if (mi[a[j]] == 0)  k2 = 1; }
            }
        
        if (r == 2)
            for (j = 1; j <= 2*k; j++)
            {
                if (j <= k)     {   ma[a[j]] = 1;   if (mi[a[j]] == 0)  k2 = 1; }
                if (j > k)      {   mi[a[j]] = 1;   if (ma[a[j]] == 0)  k1 = 1; }
            }
        
        if (k1 == 0 && r != 0)    ok1 = 1;
        if (k2 == 0 && r != 0)    ok2 = 1;
    }
    
    r = 0;
    for (j = 1; j <= n; j++)
    {
        if (ok1 == 0 && ma[j] == 0)
        {   r++;    rez = j;    }
        if (ok2 == 0 && mi[j] == 0)
        {   r++;    rez = j;    }
    }
    
    if (r == 1)     fout << rez << "\n";
    else fout << 0 << "\n";
}