Cod sursa(job #2711271)

Utilizator HardtoPronouncePetcu David-Andrei HardtoPronounce Data 23 februarie 2021 21:01:37
Problema Balanta Scor 100
Compilator cpp-64 Status done
Runda simulare_nr1 Marime 1.2 kb

#include<iostream>
#include<fstream>

using namespace std;

ifstream f("balanta.in");
ofstream g("balanta.out");

const int dim = 1030;

int n, m, k, r, x;
bool st[dim], dr[dim], usr[dim], gr[dim];

int main()
{
	f >> n >> m;
	for (int i = 1; i <= m; i++) {
		f >> k;
		for (int i = 1; i <= n; i++)
			st[i] = dr[i] = false;
		for (int i = 1; i <= k; i++) {
			f >> x;
			st[x] = true;
		}
		for (int i = 1; i <= k; i++) {
			f >> x;
			dr[x] = true;
		}
		f >> r;
		switch (r) {
		case 0:
			for (int i = 1; i <= n; i++)
				if (st[i] || dr[i])
					usr[i] = gr[i] = true;
			break;
		case 1:
			for (int i = 1; i <= n; i++) {
				if (st[i])
					usr[i] = true;
				if (dr[i])
					gr[i] = true;
				if (!st[i] && !dr[i])
					usr[i] = gr[i] = true;
			}
			break;
		case 2:
			for (int i = 1; i <= n; i++) {
				if (st[i])
					gr[i] = true;
				if (dr[i])
					usr[i] = true;
				if (!st[i] && !dr[i])
					usr[i] = gr[i] = true;
			}
			break;
		}
	}
	int are = 0;
	int care = 0;
	for (int i = 1; i <= n; i++) {
		if (!usr[i]) {
			care = i;
			are++;
		}
		if (!gr[i]) {
			care = i;
			are++;
		}
	}
	if (are == 1)
		g << care;
	else
		g << 0;
}