Pagini recente » Cod sursa (job #3154504) | Cod sursa (job #2159438) | Borderou de evaluare (job #1567603) | Cod sursa (job #2272224) | Cod sursa (job #1424256)
#include <cstdio>
using namespace std;
#define Nmax 1030
FILE *f = fopen ( "balanta.in", "r" );
FILE *g = fopen ( "balanta.out", "w" );
int st[Nmax], dr[Nmax], Heavy[Nmax], Light[Nmax];
int NrElem ( int v[], int N ){
int nr = 0;
for ( int i = 1; i <= N; ++i )
if ( v[i] > 0 )
nr++ ;
return nr;
}
int GetElem ( int v[], int N ){
for ( int i = 1; i <= N; ++i )
if ( v[i] == 1 )
return i;
}
int main(){
int N, 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 ( NrElem ( Heavy, N ) == 1 && NrElem ( Light, N ) == 0 ){
fprintf ( g, "%d", GetElem ( Heavy, N ) );
return 0;
}
if ( NrElem ( Heavy, N ) == 0 && NrElem ( Light, N ) == 1 ){
fprintf ( g, "%d", GetElem ( Light, N ) );
return 0;
}
fprintf ( g, "%d", 0 );
return 0;
}