Pagini recente » Cod sursa (job #2633324) | Cod sursa (job #1001510) | Cod sursa (job #88265) | Cod sursa (job #1396828) | Cod sursa (job #25502)
Cod sursa(job #25502)
#include <stdio.h>
#include <iostream>
#include <vector>
using namespace std;
const int NORMAL = 1;
const int USOR = 2;
const int GREU = 3;
int n,m;
vector<int> stanga;
vector<int> dreapta;
int a;
int ver;
int cautat;
int i,j,k;
int gr[2000];
int main()
{
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);
scanf("%d %d\n", &n, &m);
for ( i = 1; i <= m; i++ )
{
dreapta.clear();
stanga.clear();
scanf("%d ", &k);
for ( j = 1; j <= 2*k; j++ )
{
scanf("%d ", &a);
if ( j > k )
dreapta.push_back(a);
else
stanga.push_back(a);
}
scanf("%d\n", &ver );
if ( ver == 0 )
{
for ( j = 0; j < k; j++ )
{
gr[ dreapta[j] ] = NORMAL;
gr[ stanga[j] ] = NORMAL;
}
}
if ( ver == 1 )
{
if ( k == 1 )
{
if ( gr[ dreapta[0] ] == gr[ stanga[0] ] )
{
if ( gr[ dreapta[0] ] == USOR )
cautat = dreapta[0];
if ( gr[ dreapta[0] ] == GREU )
cautat = stanga[0];
}
}
for ( j = 0 ; j < k ; j++ )
{
gr[ dreapta[j] ] = USOR;
gr[ stanga[j] ] = GREU;
}
}
if ( ver == 2 )
{
if ( k == 1 )
{
if ( gr[ dreapta[0] ] == gr[ stanga[0] ] )
{
if ( gr[ dreapta[0] ] == USOR )
cautat = stanga[0];
if ( gr[ dreapta[0] ] == GREU )
cautat = dreapta[0];
}
}
for ( j = 0 ; j < k; j++ )
{
gr[ dreapta[j] ] = GREU;
gr[ stanga[j] ] = USOR;
}
}
if ( cautat )
{
printf("%d\n", cautat);
return 0;
}
}
j = 0;
for ( i = 1 ; i <= n ; i++ )
{
if ( gr[i] != NORMAL )
cautat = i;
else
j++;
}
if ( j != n-1 ) cautat = 0;
printf("%d\n", cautat );
return 0;
}