Cod sursa(job #2059060)

Utilizator Andrei_CotorAndrei Cotor Andrei_Cotor Data 6 noiembrie 2017 16:56:24
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.57 kb
#include<fstream>
#include<string.h>
using namespace std;
ifstream fi("balanta.in");
ofstream fo("balanta.out");
int n,m,i,j,nr,A1[1025],A2[1025],rez,r,ap,x;
bool G[1025],U[1025];
int main()
{
    fi>>n>>m;
    memset(G,1,sizeof(G));
    memset(U,1,sizeof(U));
    for(i=1; i<=m; i++)
    {
        fi>>nr;
        memset(A1,0,sizeof(A1));
        memset(A2,0,sizeof(A2));
        for(j=1; j<=nr; j++)
        {
            fi>>x;
            A1[x]=1;
        }
        for(j=1; j<=nr; j++)
        {
            fi>>x;
            A2[x]=1;
        }
        fi>>r;
        if(r==0)
        {
            for(j=1; j<=n; j++)
            {
                if(A1[j]==1 || A2[j]==1)
                    G[j]=U[j]=0;
            }
        }
        if(r==1)
        {
            for(j=1; j<=n; j++)
            {
                //raman suspecte doar elementele din talerul st care erau suspecte ca erau prea grele
                //si cele din talerul dr care erau suspecte pt ca erau prea usoare
                G[j]&=A1[j];
                U[j]&=A2[j];
            }
        }
        if(r==2)
        {
            for(j=1; j<=n; j++)
            {
                G[j]&=A2[j];
                U[j]&=A1[j];
            }
        }
    }
    rez=0;
    for(i=1; i<=n; i++)
    {
        if(U[i]==1)
        {
            rez=i;
            ap++;
        }
        if(G[i]==1)
        {
            rez=i;
            ap++;
        }
    }
    if(ap!=1)
        rez=0;
    fo<<rez<<"\n";
    fi.close();
    fo.close();
    return 0;
}