Cod sursa(job #1848184)

Utilizator Lungu007Lungu Ionut Lungu007 Data 15 ianuarie 2017 16:42:17
Problema Balanta Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.97 kb
#include <iostream>
#include <fstream>
#define NMAX 1028

using namespace std;

ifstream in("balanta.in");
ofstream out("balanta.out");

int n,m,greu[NMAX],usor[NMAX],st[NMAX],dr[NMAX],t,c;
void solve();

int main()
{
    in >> n >> m;

    for(int i=1;i<=n;i++)
    {
        usor[i] = greu[i] = 1;
    }

    for(int i=0;i<3;i++)
    {
        in >> t;
        for(int j=0;j<t;j++) in >> st[j];
        for(int j=0;j<t;j++) in >> dr[j];
        in >> c;
        solve();
    }
    int sum=0;
    for(int i=1;i<=n;i++)
    {
        sum+=greu[i];
        sum+=usor[i];
    }
    if(sum>1) out << 0;
    else
    {
        for(int i=1;i<=n;i++)
        {
            if(usor[i]==1 || greu[i]==1) {out << i; break;}
        }
    }
    return 0;
}

void solve()
{
    if(c==0)
    {
        for(int i=0;i<t;i++)
        {
            usor[st[i]]=0;usor[dr[i]]=0;
            greu[st[i]]=0;usor[dr[i]]=0;
        }
    }
    else if(c==1)
    {
        for(int i=0;i<t;i++)
        {
            greu[st[i]]++;
        }
        for(int i=1;i<=n;i++)
        {
            if(greu[i]>0)
                greu[i]--;
        }

         for(int i=0;i<t;i++)
        {
            usor[dr[i]]++;
        }
        for(int i=1;i<=n;i++)
        {
            if(usor[i]>0)
                usor[i]--;
        }
    }
    else
    {
         for(int i=0;i<t;i++)
        {
            greu[dr[i]]++;
        }
        for(int i=1;i<=n;i++)
        {
            if(greu[i]>0)
                greu[i]--;
        }

         for(int i=0;i<t;i++)
        {
            usor[st[i]]++;
        }
        for(int i=1;i<=n;i++)
        {
            if(usor[i]>0)
                usor[i]--;
        }
    }

//        for(int i=1;i<=n;i++)
//    {
//        cout << greu[i] << " ";
//    }
//    cout << endl;
//    for(int i=1;i<=n;i++)
//    {
//        cout << usor[i] << " ";
//    }
//    cout << endl << endl;
}