Cod sursa(job #2720708)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 11 martie 2021 10:40:02
Problema Balanta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.76 kb
#include <bits/stdc++.h>

#define NMAX 1100
using namespace std;

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

int tst[NMAX], tdr[NMAX], maiUsoara[NMAX], maiGrea[NMAX];

int main()
{
    int n, k;
    fin >> n >> k;

    for(int i = 1; i <= k; ++i){
        int m;
        fin >> m;

        for(int i = 1; i <= n; ++i)
            tst[i] = tdr[i] = 0;
        for(int i = 1; i <= m; ++i){
            int val;
            fin >> val;

            tst[val] = 1;
        }
        for(int i = 1; i <= m; ++i){
            int val;
            fin >> val;

            tdr[val] = 1;
        }

        int caz;
        fin >> caz;

        if(caz == 0){
            for(int i = 1; i <= n; ++i)
                if(tst[i] || tdr[i])
                    maiUsoara[i] = maiGrea[i] = 1;
        }
        else if(caz == 1){
            for(int i = 1; i <= n; ++i){
                if(tst[i])
                    maiUsoara[i] = 1;
                if(tdr[i])
                    maiGrea[i] = 1;
                if(!tst[i] && !tdr[i])
                    maiUsoara[i] = maiGrea[i] = 1;
            }
        }
        else {
            for(int i = 1; i <= n; ++i){
                if(tdr[i])
                    maiUsoara[i] = 1;
                if(tst[i])
                    maiGrea[i] = 1;
                if(!tst[i] && !tdr[i])
                    maiUsoara[i] = maiGrea[i] = 1;
            }
        }
    }

    int cnt = 0, wh = 0;
    for(int i = 1; i <= n; ++i){
        if(!maiUsoara[i]){
            wh = i;
            ++cnt;
        }

        if(!maiGrea[i]){
            wh = i;
            ++cnt;
        }
    }

    if(cnt == 1)
        fout << wh << '\n';
    else fout << 0 << '\n';
    return 0;
}