Pagini recente » Cod sursa (job #3000103) | Cod sursa (job #1902701) | Cod sursa (job #1975674) | Cod sursa (job #180035) | Cod sursa (job #2910389)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "balanta.in" );
ofstream fout( "balanta.out" );
set<int> sus1, sus2;
void del( set<int> &s, int val ) {
if ( s.count(val) ) s.erase(s.find(val));
}
int main() {
int n, m, k, res;
fin >> n >> m;
for ( int i = 1; i <= n; ++i ) {
sus1.insert(i);
sus2.insert(i);
}
while ( m-- ) {
fin >> k;
vector<int> left(k), right(k);
for ( int i = 0; i < k; ++i ) {
fin >> left[i];
}
for ( int i = 0; i < k; ++i ) {
fin >> right[i];
}
fin >> res;
if ( res == 0 ) {
for ( int i = 0; i < k; ++i ) {
del(sus1, left[i]), del(sus1, right[i]);
del(sus2, left[i]), del(sus2, right[i]);
}
} else if ( res == 1 ) {
for ( int i = 0; i < k; ++i ) {
del(sus1, right[i]);
del(sus2, left[i]);
}
} else {
for ( int i = 0; i < k; ++i ) {
del(sus1, left[i]);
del(sus2, right[i]);
}
}
}
if ( sus1.size() == 1 && sus2.size() == 1 ) {
fout << 0;
} else if ( sus2.size() == 1 ) {
if ( sus1.count(*sus2.begin()) ) {
fout << 0;
} else {
fout << *sus2.begin();
}
} else if ( sus1.size() == 1 ) {
if ( sus2.count(*sus1.begin()) ) {
fout << 0;
} else {
fout << *sus1.begin();
}
} else {
fout << 0;
}
fin.close();
fout.close();
return 0;
} // :/