Cod sursa(job #495369)

Utilizator ChallengeMurtaza Alexandru Challenge Data 24 octombrie 2010 20:39:01
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>

using namespace std;

const char InFile[]="balanta.in";
const char OutFile[]="balanta.out";
const int MaxN=1050;

ifstream fin(InFile);
ofstream fout(OutFile);

int n,m,k,w[MaxN],sol,bleft[MaxN],bright[MaxN],r,msol;
char wok[MaxN];
bool ok;

int main()
{
	fin>>n>>m;
	for(register int i=0;i<m;++i)
	{
		fin>>k;
		for(register int i=0;i<k;++i)
		{
			fin>>bleft[i];
		}
		for(register int i=0;i<k;++i)
		{
			fin>>bright[i];
		}
		fin>>r;
		if(r==0)
		{
			for(register int i=0;i<k;++i)
			{
				wok[bleft[i]]=1;
				wok[bright[i]]=1;
			}
		}
		else
		{
			int semn=1;
			if(r==2)
			{
				semn=-1;
			}
			for(register int i=0;i<k;++i)
			{
				w[bleft[i]]+=semn;
				w[bright[i]]-=semn;
			}
		}
	}
	fin.close();

	for(register int i=1;i<=n;++i)
	{
		if(wok[i]==0)
		{
			w[i]=abs(w[i]);
			if(w[i]>msol)
			{
				sol=i;
				msol=w[i];
				ok=true;
			}
			else if(w[i]==msol)
			{
				ok=false;
			}
		}
	}

	if(ok)
	{
		fout<<sol;
	}
	else
	{
		fout<<"0";
	}
	fout.close();
}