Cod sursa(job #361393)

Utilizator tamas_iuliaTamas Iulia tamas_iulia Data 4 noiembrie 2009 21:18:47
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <stdio.h>
#define Nmax 1025

int bmi[Nmax],bma[Nmax];
int v1[Nmax],v2[Nmax];
int n,i,j,m,k,r,ok1,ok2,rez,max,nr;

int main(){
	freopen("balanta.in","r",stdin);
   freopen("balanta.out","w",stdout);
   scanf("%d%d",&n,&m);

   for(i=1;i<=m;++i){
   	scanf("%d",&k);
      v1[0]=v2[0]=0;
      for(j=1;j<=k;++j) scanf("%d",&v1[++v1[0]]);
      for(j=1;j<=k;++j) scanf("%d",&v2[++v2[0]]);
      scanf("%d",&r);
      if(r == 0)
      	for(j=1;j<=k;++j)
           bmi[v1[j]]=bmi[v2[j]]=bma[v1[j]]=bma[v2[j]]=-Nmax;else
      if(r == 1){ // mai grele pe taler stang
      	for(j=1;j<=k;++j){
          if( bma[v1[j]] == nr ) bma[v1[j]]=nr+1;
          if( bmi[v2[j]] == nr ) bmi[v2[j]]=nr+1;
         }
         nr++;
      }
      else{ // mai grele pe taler drept
      	for(j=1;j<=k;++j){
          if( bma[v2[j]] == nr ) bma[v2[j]]=nr+1;
          if( bmi[v1[j]] == nr ) bmi[v1[j]]=nr+1;
         }
         nr++;
      }
   }

   for(i=1,ok1=0;i<=n;++i)
   	if(bmi[i] == nr) ok1++, rez=i;

   for(i=1,ok2=0;i<=n;++i)
   	if(bma[i] == nr) ok2++, rez=i;

   if((ok1 == 0 && ok2 == 1 ) || (ok1 == 1 && ok2 == 0))
   	printf("%d\n",rez);

   else printf("%d\n",0);

   fclose(stdin); fclose(stdout);
   return 0;
}