Pagini recente » Cod sursa (job #1317210) | Cod sursa (job #418467) | Cod sursa (job #2927449) | Cod sursa (job #1897417) | Cod sursa (job #1456050)
#include <cstdio>
#include <iostream>
#include <vector>
#include <set>
#include <cmath>
using namespace std;
int main() {
freopen("balanta.in", "r", stdin);
freopen("balanta.out", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, m, nmax = 1030;
cin >> n >> m;
bool normal[nmax], usor[nmax], greu[nmax], st[nmax], dr[nmax];
for (int k = 0; k < m; k++) {
int nr;
for (int j = 1; j <= n; j++) {
st[j] = dr[j] = false;
}
cin >> nr;
for (int j = 0; j < nr; j++) {
int aux;
cin >> aux;
st[aux] = true;
}
for (int j = 0; j < nr; j++) {
int aux;
cin >> aux;
dr[aux] = true;
}
int poz;
cin >> poz;
if (poz == 0) {
for (int i = 1; i <= n; i++) {
if (st[i]) {
normal[i] = true;
}
if (dr[i]) {
normal[i] = true;
}
}
} else if (poz == 1) {
for (int i = 1; i <= n; i++) {
if (st[i]) {
greu[i] = true;
}
if (dr[i]) {
usor[i] = true;
}
if (!st[i] && !dr[i]) {
normal[i] = true;
}
}
} else {
for (int i = 1; i <= n; i++) {
if (st[i]) {
usor[i] = true;
}
if (dr[i]) {
greu[i] = true;
}
if (!st[i] && !dr[i]) {
normal[i] = true;
}
}
}
}
int nr = 0, sol = 0;
for (int i = 1; i <= n; i++) {
if (greu[i] && usor[i]) {
normal[i] = true;
}
if (!normal[i] && (greu[i] || usor[i])) {
sol = i;
nr++;
}
}
if (nr == 1) {
cout << sol;
} else {
cout << 0;
}
return 0;
}