Cod sursa(job #3239603)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 6 august 2024 21:05:40
Problema Balanta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.73 kb
#include <fstream>
using namespace std;
ifstream cin("balanta.in");
ofstream cout("balanta.out");
int n,m,k,v[1025],a[520],b[520],r,usor=-1,tu,tg,nru,nrg,greu=1,aur=2,nr,sol;
bool fr[1025];
void citeste(int v[]){
    for(int i=1;i<=k;i++)
        cin>>v[i],fr[v[i]]=1;
}
int main()
{
    cin>>n>>m;
    while(m--){
        cin>>k;
        citeste(a);
        citeste(b);
        cin>>r;
        if(r==0)
            for(int i=1;i<=k;i++)
                v[a[i]]=v[b[i]]=aur;
        else if(r==1){
            for(int i=1;i<=n;i++){
                if(!fr[i])
                    v[i]=aur;
                fr[i]=0;
            }
            for(int i=1;i<=k;i++){
                if(v[a[i]]==usor||v[a[i]]==aur)
                    v[a[i]]=aur;
                else
                    v[a[i]]=greu;
                if(v[b[i]]==greu||v[b[i]]==aur)
                    v[b[i]]=aur;
                else
                    v[b[i]]=usor;
            }
        }else{
            for(int i=1;i<=n;i++){
                if(!fr[i])
                    v[i]=aur;
                fr[i]=0;
            }
            for(int i=1;i<=k;i++){
                if(v[b[i]]==usor||v[b[i]]==aur)
                    v[b[i]]=aur;
                else
                    v[b[i]]=greu;
                if(v[a[i]]==greu||v[a[i]]==aur)
                    v[a[i]]=aur;
                else
                    v[a[i]]=usor;
            }
        }
    }
    for(int i=1;i<=n;i++)
        if(v[i]==greu)
            tg++,nrg=i;
        else if(v[i]==usor)
            tu++,nru=i;
    if(!(tu!=tg&&(tu==1||tg==1)))
        sol=0;
    else if(tu==1)
        sol=nru;
    else
        sol=nrg;
    cout<<sol;
    return 0;
}