Cod sursa(job #3329002)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 11 decembrie 2025 15:28:00
Problema Balanta Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
// Ilie "The-Winner" Dumitru
// Dumnezeu sa o ierte
#include<bits/stdc++.h>
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define err(...) fprintf(stderr, __VA_ARGS__)
using ll=long long;
using dbl=long double;
constexpr int NMAX=1024;
constexpr ll MOD=1'000'000'007;

int N, M;
int side[NMAX][NMAX], heavy[NMAX];
std::bitset<NMAX> pos;

int main()
{
	FILE* f=fopen("balanta.in", "r"), *g=fopen("balanta.out", "w");
	int i, j, k, l, x;

	fscanf(f, "%d%d", &N, &M);
	for(i=0;i<M;++i)
	{
		fscanf(f, "%d", &k);
		for(j=1;j<=2;++j)
			for(l=0;l<k;++l)
			{
				fscanf(f, "%d", &x);
				--x;
				side[i][x]=j;
			}
		fscanf(f, "%d", heavy+i);
	}

	k=0;
	l=0;
	for(i=0;i<N;++i)
	{
		bool L=1, H=1;

		for(j=0;j<M && (L || H);++j)
		{
			if(side[j][i]+heavy[j] || side[j][i]==3-heavy[j])
				H=0;
			if(side[j][i]+heavy[j] || side[j][i]==heavy[j])
				L=0;
		}

		if(L || H)
		{
			++k;
			l=i;
		}
	}

	if(k!=1)
		l=-1;
	fprintf(g, "%d\n", l+1);

	fclose(f);
	fclose(g);
	return 0;
}