Pagini recente » Cod sursa (job #2069932) | Cod sursa (job #2616461) | Cod sursa (job #455724) | Cod sursa (job #1211212) | Cod sursa (job #1424261)
#include <cstdio>
using namespace std;
#define Nmax 1030
FILE *f = fopen ( "balanta.in", "r" );
FILE *g = fopen ( "balanta.out", "w" );
int N, st[Nmax], dr[Nmax], Heavy[Nmax], Light[Nmax];
int NrElem ( int v[] ){
int nr = 0;
for ( int i = 1; i <= N; ++i )
if ( v[i] > 0 )
nr++ ;
return nr;
}
int GetElem ( int v[] ){
for ( int i = 1; i <= N; ++i )
if ( v[i] == 1 )
return i;
}
int main(){
int M, K, r;
fscanf ( f, "%d%d", &N, &M );
for ( int i = 1; i <= N; ++i )
Heavy[i] = Light[i] = 1;
for ( int i = 1; i <= M; ++i ){
fscanf ( f, "%d", &K );
for ( int j = 1; j <= K; ++j )
fscanf ( f, "%d", &st[j] );
for ( int j = 1; j <= K; ++j )
fscanf ( f, "%d", &dr[j] );
fscanf ( f, "%d", &r );
if ( r == 0 ){
for ( int j = 1; j <= K; ++j ){
Heavy[st[j]]--; Light[st[j]]--;
Heavy[dr[j]]--; Light[dr[j]]--;
}
continue;
}
if ( r == 1 ){
for ( int j = 1; j <= K; ++j ){
Heavy[st[j]]++;
Light[dr[j]]++;
}
for ( int j = 1; j <= N; ++j ){
Heavy[j]--;
Light[j]--;
}
continue;
}
if ( r == 2 ) {
for ( int j = 1; j <= K; ++j ){
Heavy[dr[j]]++;
Light[st[j]]++;
}
for ( int j = 1; j <= N; ++j ){
Heavy[j]--;
Light[j]--;
}
}
}
if ( N & 1 && NrElem ( Heavy ) == 1 && NrElem ( Light ) == 1 && GetElem ( Heavy ) == GetElem( Light ) ){
fprintf ( g, "%d", GetElem ( Heavy ) );
return 0;
}
if ( NrElem ( Heavy ) == 1 && NrElem ( Light ) == 0 ){
fprintf ( g, "%d", GetElem ( Heavy ) );
return 0;
}
if ( NrElem ( Heavy ) == 0 && NrElem ( Light ) == 1 ){
fprintf ( g, "%d", GetElem ( Light ) );
return 0;
}
fprintf ( g, "%d", 0 );
return 0;
}