Cod sursa(job #1066817)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 25 decembrie 2013 17:55:35
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.57 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("balanta.in");
ofstream g("balanta.out");
int N,M;
int Array[2200];
int Vcar[2200];
bool Use[2200];
void Initialize()
{
    int i;
    for(i=1;i<=N;i++)
        Vcar[i]=2;
}
void Browse()
{
    int i,j;
    for(i=1;i<=M;i++)
    {
        int length;
        f>>length;
        for(j=1;j<=2*length+1;j++)
            f>>Array[j],Use[Array[j]]=1;
        if(Array[2*length+1]==2)
            Array[2*length+1]=-1;
        for(j=1;j<=length;j++)
        {
            if(Vcar[Array[j]]==2)
                Vcar[Array[j]]=Array[2*length+1];
            else
                if(Vcar[Array[j]]!=Array[2*length+1])
                    Vcar[Array[j]]=0;
        }
        for(j=length+1;j<=2*length;j++)
        {
            if(Vcar[Array[j]]==2)
                Vcar[Array[j]]=Array[2*length+1]*(-1);
            else
            {
                if(Vcar[Array[j]]!=Array[2*length+1]*(-1))
                    Vcar[Array[j]]=0;
            }
        }
        if(Array[2*length+1]!=0)
        {
            for(j=1;j<=N;j++)
                if(Use[j]==0)
                    Vcar[j]=0;
        }
        memset(Use,0,sizeof(Use));
    }
}
void Print()
{
    int i;
    int counter=0;
    int poz=0;
    for(i=1;i<=N;i++)
        if(Vcar[i]!=0)
        {
            counter++;
            poz=i;
        }
    if(counter==1)
        g<<poz<<"\n";
    else
        g<<0<<"\n";
}
int main()
{
    f>>N>>M;
    Initialize();
    Browse();
    Print();
    return 0;
}