Cod sursa(job #51065)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 9 aprilie 2007 20:34:02
Problema Balanta Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.48 kb
#include<stdio.h>
long a[1200],b[1200],frcv[1200],m,n,i,k,j,semn,contor1,contor2,pozitie1,pozitie2,contor3,contor4,c[1200];
int main()
{
 freopen("balanta.in","r",stdin);
 freopen("balanta.out","w",stdout);
 scanf("%ld %ld",&n,&m);
 for(i=1;i<=m;i++)
  {
  scanf("%ld",&k);
  for(j=1;j<=2*k;j++)
   scanf("%ld",&c[j]);
  scanf("%ld",&semn);
  if (semn==1)
   {
    for(j=1;j<=2*k;j++)
     b[j]=c[j];
    for(j=1;j<=k;j++)
     {
      if (a[b[j]]==-1) {a[b[j]]=0;frcv[b[j]]=1;}
      if (a[b[j]]==0&&frcv[b[j]]==0) a[b[j]]=1;
     }
    for(j=k+1;j<=2*k;j++)
     {
     if (a[b[j]]==1) {a[b[j]]=0;frcv[b[j]]=1;}
     if (a[b[j]]==0&&frcv[b[j]]==0) a[b[j]]=-1;
    }
   }
   else
    if (semn==2)
    {
    for(j=1;j<=2*k;j++)
     b[j]=c[j];
     for(j=1;j<=k;j++)
    {
      if (a[b[j]]==1) {a[b[j]]=0;frcv[b[j]]=1;}
      if (a[b[j]]==0&&frcv[b[j]]==0) a[b[j]]=-1;
     }
    for(j=k+1;j<=2*k;j++)
     {
     if (a[b[j]]==-1) {a[b[j]]=0;frcv[b[j]]=1;}
     if (a[b[j]]==0&&frcv[b[j]]==0) a[b[j]]=1;
    }
   }
   else
    if (semn==0)
   for(j=1;j<=2*k;j++)
   {
   a[c[j]]=0;
   frcv[c[j]]=1;
   }
   contor1=0;
   contor2=0;
  for(j=1;j<=2*k;j++)
   {
    if (a[b[j]]==1) {contor1++;pozitie1=b[j];}
    if (a[b[j]]==-1) {contor2++;pozitie2=b[j];}
  }
  if (contor1==1&&contor2==0) {printf("%ld\n",pozitie1);return 0;}
  if (contor2==1&&contor1==0) {printf("%ld\n",pozitie2);return 0;}
 }
 while (i) {i--;i++;}
 printf("0\n");
 return 0;
}