Cod sursa(job #1442732)

Utilizator LegionHagiu Stefan Legion Data 26 mai 2015 09:11:25
Problema Balanta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <iostream>
#include <fstream>
using namespace std;
int nuestanga[10050], nuedreapta[10050],s[10050],d[10050];
int main()
{
	ifstream in("balanta.in");
	ofstream out("balanta.out");
	int i, j, n, m, k, r,st=0,gasitst=0,dr=0,gasitdr=0;
	in >> n;
	in >> m;
	for (i = 1; i <= m; i++)
	{
		in >> k;
		for (j = 1; j <= k; j++)
		{
			in >> s[j];
		}
		for (j = 1; j <= k; j++)
		{
			in >> d[j];
		}
		in >> r;
		if (r == 0)
		{
			for (j = 1; j <= k; j++)
			{
				nuestanga[s[j]] = 1;
				nuedreapta[s[j]] = 1;
				nuestanga[d[j]] = 1;
				nuedreapta[d[j]] = 1;
			}
		}
		else if (r == 2)
		{
			for (j = 1; j <= k; j++)
			{
				nuedreapta[s[j]] = 1;
			}
			for (j = 1; j <= k; j++)
			{
				nuestanga[d[j]] = 1;
			}
		}
		else
		{
			for (j = 1; j <= k; j++)
			{
				nuedreapta[d[j]] = 1;
			}
			for (j = 1; j <= k; j++)
			{
				nuestanga[s[j]] = 1;
			}
		}
	}
	for (i = 1; i <= n; i++)
	{
		if (nuestanga[i] == 0)
		{
			if (st != 0)
			{
				gasitst = 0;
			}
			else
			{
				gasitst = 1;
				st = i;
			}
		}
	}
	for (i = 1; i <= n; i++)
	{
		if (nuedreapta[i] == 0)
		{
			if (dr != 0)
			{
				gasitdr = 0;
			}
			else
			{
				gasitdr = 1;
				dr = i;
			}
		}
	}
	if (gasitst == 1 && gasitdr == 1 && st == dr)
	{
		out << st;
	}
	else if (gasitst == 1&&gasitdr==0)
	{
		out << st;
	}
	else if (gasitdr == 1&&gasitst==0)
	{
		out << dr;
	}
	else
	{
		out << "0";
	}
}