Cod sursa(job #3288518)

Utilizator LucaMirsolea14Luca Mirsolea LucaMirsolea14 Data 22 martie 2025 16:18:07
Problema Balanta Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.45 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");

bitset<1050> A,B;

int n;

int main(){

    int m,i,j,k,x,bal;

    bitset<1050> a,b;

    fin>>n>>m;

    for(i=1;i<=n;i++){
        A[i]=1;
        B[i]=1;
    }

    for(int ii=1;ii<=m;ii++){

        fin>>k;

        for(j=1;j<=n;j++){
            a[j]=0;
            b[j]=0;
        }

        for(j=1;j<=k;j++){
            fin>>x;
            a[x]=1;
        }
        for(j=1;j<=k;j++){
            fin>>x;
            b[x]=1;
        }

        fin>>bal;

        if(bal == 1){
            for(i=1;i<=n;i++)
                if(A[i] == 1 && a[i] == 0)
                    A[i]=0;
            for(i=1;i<=n;i++)
                if(B[i] == 1 && a[i] == 0)
                    B[i]=0;
        }
        if(bal == 2){
            for(i=1;i<=n;i++)
                if(A[i] == 1 && b[i] == 0)
                  A[i]=0;
                  for(i=1;i<=n;i++)
                if(B[i] == 1 && b[i] == 0)
                    B[i]=0;
        }

    }

    int nra=0,nrb=0,reza,rezb;

    for(i=1;i<=n;i++){
        if(A[i] == 1){
            nra++;
            reza=i;
        }
        if(B[i] == 1){
            nrb++;
            rezb=i;
        }
    }

    if(nra>1&&nrb>1){
        fout<<0;
        return 0;
    }
    if(nra==1){
        fout<<reza;
        return 0;
    }
    fout<<rezb;


}