Cod sursa(job #3239527)

Utilizator Bianca2507Negret Bianca Bianca2507 Data 6 august 2024 12:13:21
Problema Balanta Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.06 kb
#include <fstream>

using namespace std;
ifstream cin("balanta.in");
ofstream cout("balanta.out");
int n,m,k,st[1027],dr[1027],v[2][1027];
bool fr[1027],fr1[1027];
int main()
{
    cin>>n>>m;
    for(int i=1; i<=n; i++)
    {
        v[0][i]=1;
        v[1][i]=1;
    }
    for(int i=1; i<=m; i++)
    {
        cin>>k;

        for(int i=1; i<=k; i++)
            cin>>st[i],fr[st[i]]=1;

        for(int i=1; i<=k; i++)
            cin>>dr[i],fr1[dr[i]]=1;
        int r;
        cin>>r;
        if(r==0)///st=dr
        {
            for(int i=1; i<=k; i++)
            {
                v[0][st[i]]=0;
                v[0][dr[i]]=0;
                v[1][st[i]]=0;
                v[1][dr[i]]=0;
            }
        }
        else if(r==1)///st>dr
        {
            for(int i=1; i<=n; i++)
                if(v[0][i]==1 && fr1[i]==1)
                    v[0][i]=1;
                else
                    v[0][i]=0;


            for(int i=1; i<=n; i++)
                if(v[1][i]==1 &&fr[i]==1)
                    v[1][i]=1;
                else
                    v[1][i]=1;
        }
        else if(r==2)///st<dr
        {
            for(int i=1; i<=n; i++)
                if(v[0][i]==1 && fr[i]==1)
                    v[0][i]=1;
                else
                    v[0][i]=0;
            for(int i=1; i<=n; i++)
                if(v[1][i]==1 && fr1[i]==1)
                    v[1][i]=1;
                else
                    v[1][i]=0;
        }
        for(int i=1; i<=n; i++)
            fr[i]=fr1[i]=0;
    }
    int nr=0,nr1=0,aux=0,aux1=0;
    for(int i=1; i<=n; i++)
    {
        if(v[0][i]==1)
        {
            nr++;
            if(v[1][i]==0)
                aux=i;
        }
         if(v[1][i]==1)
        {
            nr1++;
            if(v[0][i]==0)
                aux1=i;
        }

    }
    if(nr==1 && nr1==0)
        cout<<aux;
    else if(nr==0 && nr1==1)
        cout<<aux1;
    else
        cout<<0;
    return 0;
}
///v[0][i]=cele usoare
///v[0][i]=cele grele