Cod sursa(job #2773023)

Utilizator MogoneaMIhneaMogonea Mihnea Mihai MogoneaMIhnea Data 4 septembrie 2021 11:08:35
Problema Balanta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.55 kb
#include<fstream>
using namespace std;
ifstream fin ("balanta.in");
ofstream fout ("balanta.out");
int n, m, i, j, s, k, r, p, nr, nr2, s2;
int v[1001], f[1001], H[1001], L[1001], h[1001];
int main(){
    fin>>n>>m;
    for(i=1;i<=n;i++){
        H[i]=1;
        L[i]=1;
    }
    for(j=1;j<=m;j++){
        fin>>k;
            for(i=1;i<=k;i++)
                fin>>v[i];
            for(i=1;i<=k;i++)
                fin>>f[i];
            fin>>r;
            if(r==1){
                for(i=1;i<=n;i++)
                    h[i]=0;
                    for(i=1;i<=k;i++){
                        h[v[i]]=1;
                    }
                    for(i=1;i<=n;i++){
                        if(H[i]==1 && h[i]== 1)
                            H[i]=1;
                        else
                            H[i]=0;
                }
                for(i=1;i<=n;i++)
                    h[i]=0;
                for(i=1;i<=k;i++){
                        h[f[i]]=1;
                    }
                for(i=1;i<=n;i++){
                    if(L[i]==1 && h[i]== 1)
                        L[i]=1;
                    else
                        L[i]=0;
                }
            }
                if(r==0){
                    for(j=1;j<=k;j++){
                        H[v[j]]=0;
                        L[v[j]]=0;
                        H[f[j]]=0;
                        L[f[j]]=0;

                    }
                }
                if(r==2){
                    for(i=1;i<=n;i++)
                        h[i]=0;
                    for(i=1;i<=k;i++){
                        h[f[i]]=1;
                    }
                    for(i=1;i<=n;i++){
                        if(H[i]==1 && h[i]== 1)
                            H[i]=1;
                        else
                            H[i]=0;
                }
                for(i=1;i<=n;i++)
                    h[i]=0;
                for(i=1;i<=k;i++){
                    h[v[i]]=1;
                }
                for(i=1;i<=n;i++){
                    if(L[i]==1 && h[i]== 1)
                        L[i]=1;
                    else
                        L[i]=0;
                }
            }
    }
    nr=0;
    for(i=1;i<=n;i++){
        if(H[i]==1){
            nr++;
            s=i;

        }
    }
    nr2=0;
    for(i=1;i<=n;i++){
        if(L[i]==1){
            nr2++;
            s2=i;
        }
    }
    if(nr+nr2==1 || nr+nr2==2 && L[s]==H[s])
        fout<<s;
    else
        fout<<"0";
        return 0;
}