Pagini recente » Cod sursa (job #1423704) | Cod sursa (job #933977) | Cod sursa (job #3164584) | Cod sursa (job #768673) | Cod sursa (job #2728179)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
const int NMAX = 1 << 10 | 1;
int a[2][NMAX];
bool fr_less[NMAX], fr_more[NMAX];
int main() {
int N, M;
fin >> N >> M;
for (int i = 1; i <= N; ++i)
fr_less[i] = fr_more[i] = true;
for (int i = 0; i < M; ++i) {
int K;
fin >> K;
for (int j = 0; j < 2; ++j)
for (int k = 0; k < K; ++k)
fin >> a[j][k];
int rez;
fin >> rez;
if (rez == 0) {
for (int j = 0; j < 2; ++j)
for (int k = 0; k < K; ++k)
fr_less[a[j][k]] = fr_more[a[j][k]] = false;
} else if (rez == 1) {
bool new_fr_less[NMAX] = {false}, new_fr_more[NMAX] = {false};
for (int k = 0; k < K; ++k)
if (fr_less[a[1][k]])
new_fr_less[a[1][k]] = true;
for (int k = 0; k < K; ++k)
if (fr_more[a[0][k]])
new_fr_more[a[0][k]] = true;
for (int j = 1; j <= N; ++j)
fr_less[j] = new_fr_less[j], fr_more[j] = new_fr_more[j];
} else {
bool new_fr_less[NMAX] = {false}, new_fr_more[NMAX] = {false};
for (int k = 0; k < K; ++k)
if (fr_less[a[0][k]])
new_fr_less[a[0][k]] = true;
for (int k = 0; k < K; ++k)
if (fr_more[a[1][k]])
new_fr_more[a[1][k]] = true;
for (int j = 1; j <= N; ++j)
fr_less[j] = new_fr_less[j], fr_more[j] = new_fr_more[j];
}
}
vector<int> v1, v2;
for (int i = 1; i <= N; ++i) {
if (fr_less[i])
v1.emplace_back(i);
if (fr_more[i])
v2.emplace_back(i);
}
if ((int)v1.size() == 1 && v2.empty())
fout << v1[0] << '\n';
else
if ((int)v2.size() == 1 && v1.empty())
fout << v2[0] << '\n';
else
fout << "0\n";
return 0;
}