Cod sursa(job #3185664)

Utilizator nicushor21Pirlog Marian Nicolae nicushor21 Data 19 decembrie 2023 20:08:01
Problema Balanta Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.69 kb
#include <fstream>
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
int n,m,i,j,k,v[2][1025],l,vt[1025],x,c1,c2,pos1,pos2;
int main(){
    ifstream fin("balanta.in");
    ofstream fout("balanta.out");
    fin>>n>>m;
    for(j=0;j<m;j++){
        fin>>l;
        for(i=1;i<=l*2;i++){
            fin>>vt[i];
        }
        fin>>x;
        if(x==0){
            for(i=1;i<=l*2;i++){
                v[0][vt[i]]=1;
                v[1][vt[i]]=1;
            }
        }else{
            if(x==1){
                for(i=1;i<=n;i++){
                    if(v[0][i]==0){
                        for(k=1;k<=l;k++){
                            if(vt[k]==i){
                                v[0][i]=0;
                                break;
                            }else{
                                v[0][i]=1;
                            }
                        }
                    }
                }
                for(i=1;i<=n;i++){
                    if(v[0][i]==0){
                        for(k=l+1;k<=l*2;k++){
                            if(vt[k]==i){
                                v[1][i]=0;
                                break;
                            }else{
                                v[1][i]=1;
                            }
                        }
                    }
                }
            }else{
                for(i=1;i<=n;i++){
                    if(v[0][i]==0){
                        for(k=l+1;k<=l*2;k++){
                            if(vt[k]==i){
                                v[0][i]=0;
                                break;
                            }else{
                                v[0][i]=1;
                            }
                        }
                    }
                }
                for(i=1;i<=n;i++){
                    if(v[0][i]==0){
                        for(k=1;k<=l;k++){
                            if(vt[k]==i){
                                v[1][i]=0;
                                break;
                            }else{
                                v[1][i]=1;
                            }
                        }
                    }
                }
            }
        }
    }
    for(i=1;i<=n;i++){
        if(v[0][i]==0){
            c1++;
            pos1=i;
        }
        if(v[1][i]==0){
            c2++;
            pos2=i;
        }
    }
    for(i=1;i<=n;i++){
        cout<<v[1][i]<<' ';
    }
    if(c1==1&&c1!=c2){
        fout<<pos1;
    }else if(c1==1&&c2==1&&pos1==pos2){
        fout<<pos1;
    }else if(c2==1&&c2!=c1){
        fout<<pos2;
    }else{
        fout<<0;
    }
    return 0;
}