Cod sursa(job #1601615)

Utilizator adiXMGemene Adrian adiXM Data 16 februarie 2016 04:02:51
Problema Balanta Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.59 kb
#include <fstream>
using namespace std;
ifstream f("balanta.in");
ofstream g("balanta.out");
const int NMAX=1029;
int st[NMAX],dr[NMAX],u[NMAX],gr[NMAX];
int main()
{
    int n,m,x,k,ii,t,jj;
    f>>n>>m;
    for(int i=1;i<=n;i++)
        u[i]=gr[i]=1;
    for(int q=1;q<=m;q++)
    {
        for(int i=1;i<=n;i++)
            st[i]=dr[i]=0;
        f>>k;
        for(int i=1;i<=k;i++)
        {
            f>>x;
            st[x]=1;
        }
        for(int i=1;i<=k;i++)
        {
            f>>x;
            dr[x]=1;
        }
        f>>t;
        if(t==0)
        {
            for(int i=1;i<=n;i++)
                if(st[i]==1 || dr[i]==1)
                    u[i]=gr[i]=0;
        }
        else
            if(t==1)
            {
                for(int i=1;i<=n;i++)
                {
                    if(st[i]==0)
                        gr[i]=0;
                    if(dr[i]==0)
                        u[i]=0;
                }
            }
        else
            if(t==2)
            {
                for(int i=1;i<=n;i++)
                {
                    if(st[i]==0)
                        u[i]=0;
                    if(dr[i]==0)
                        gr[i]=0;
                }
            }
    }
    int nr=0,nr1=0;
    for(int i=1;i<=n;i++)
        if(u[i]==1)
        {
            ii=i;
            nr++;
        }
    for(int i=1;i<=n;i++)
        if(gr[i]==1)
        {
            jj=i;
            nr1++;
        }
    if(nr+nr1==1)
        g<<max(ii,jj)<<"\n";
    else
        g<<"0\n";
    return 0;
}