Cod sursa(job #2012551)

Utilizator shantih1Alex S Hill shantih1 Data 18 august 2017 23:57:09
Problema Balanta Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.66 kb
#include <iostream>
#include <fstream>

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

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

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