Cod sursa(job #25285)

Utilizator judy_kCristina Petrovici judy_k Data 4 martie 2007 11:48:47
Problema Balanta Scor 40
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasa a 10-a Marime 2.36 kb
#include <stdio.h>

int k1,j1,n,m,k,i,j,x,a[2000],b[2000],c[2000],l,l1,ok;

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

    for (i=1;i<=n;++i) a[i]=5;
    
    ok=0;
    for (i=1;i<=m;++i)
    {
      if (ok==0)
      {
        scanf("%d ",&k);
        for (j=1;j<=k;++j)
        	scanf("%d ",&b[j]);
        for (j=1;j<=k;++j)
        	scanf("%d ",&c[j]);
        scanf("%d",&x);
        if (x==0)
        {
         	for (j=1;j<=k;++j)
            {
                a[b[j]]=0;
                a[c[j]]=0;
            }
        }
        else
        if (x==1)
        {
         	for (j=1;j<=k;++j)
            {
            	if (a[b[j]]==0)
                {
                 	printf("%d\n",c[j]);
                    ok=1;
                    break;
                }
                else
                if (a[c[j]]==0)
                {
                 	printf("%d\n",b[j]);
                    ok=1;
                    break;
                }
                else
                {
             		a[b[j]]=2;
                	a[c[j]]=1;
                }
            }
        }
        else
        {
         	for (j=1;j<=k;++j)
            {
                if (a[b[j]]==0)
                {
                 	printf("%d\n",c[j]);
                    ok=1;
                    break;
                }
                else
                if (a[c[j]]==0)
                {
                 	printf("%d\n",b[j]);
                    ok=1;
                    break;
                }
                else
                {
                	a[b[j]]=1;
                	a[c[j]]=2;
                }
            }
        }
      }
    }
    k=0;j=0;l=0;
    if (ok==0)
    {
    	for (i=1;i<=n;++i)
    	{
    		if (a[i]==1)
        	{
        		k++;
            	k1=i;
        	}
        	else
        	if (a[i]==2)
        	{
        		j++;
            	j1=i;
        	}
        	else
        	if (a[i]==5)
        	{
            	l++;
            	l1=i;
        	}
 	   	}
    	if (k==0 && j==0 && l==1) printf("%d\n",l1);
    	else
    	if (k==1 && l==0 && (j==0 || j>1)) printf("%d\n",k1);
    	else
    	if (j==1 && l==0 && (k==0 || k>1)) printf("%d\n",j1);
    	else
    	printf("0\n");
    }
    
    return 0;
}