Cod sursa(job #3187192)

Utilizator anghelpatrickPatrick Anghel anghelpatrick Data 27 decembrie 2023 22:48:04
Problema Balanta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.72 kb
#include <iostream>

using namespace std;

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

int n, m, k, x, status, nru, nrg;
int a[1050], b[1050], greu[1050], usor[1050];

int main(){
    fin >> n >> m;
    for (int i=1; i<=n; i++) greu[i] = usor[i] = 1;
    for (int t=1; t<=m; t++){
        fin >> k;
        for (int i=1; i<=n; i++){
            a[i] = b[i] = 0;
        }
        for (int i=1; i<=k; i++){
            fin >> x;
            a[x] = 1;
        }
        for (int i=1; i<=k; i++){
            fin >> x;
            b[x] = 1;
        }
        fin >> status;
        for (int i=1; i<=n; i++){
            if (status == 0){
                if (a[i] != 0 || b[i] != 0){
                    usor[i] = greu[i] = 0;
                }
            }
            else if (status == 1){
                if (a[i] == 0){
                    greu[i] = 0;
                }
                if (b[i] == 0){
                    usor[i] = 0;
                }
            }
            else if (status == 2){
                if (a[i] == 0){
                    usor[i] = 0;
                }
                if (b[i] == 0){
                    greu[i] = 0;
                }
            }
        }
    }
    for (int i=1; i<=n; i++){
        nrg += greu[i];
        nru += usor[i];
    }
    if (nrg == 1 && nru == 0){
        for (int i=1; i<=n; i++){
            if (greu[i] != 0){
                fout << i;
                return 0;
            }
        }
    }
    if (nrg == 0 && nru == 1){
        for (int i=1; i<=n; i++){
            if (usor[i] != 0){
                fout << i;
                return 0;
            }
        }
    }
    fout << 0;
    return 0;
}