Cod sursa(job #18685)

Utilizator petrecgClinciu Glisca Petre petrecg Data 18 februarie 2007 12:58:28
Problema Zone Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 2, Clasa a 9-a si gimnaziu Marime 1.12 kb
#include <stdio.h>
FILE *f;
long long x[513],b[513],a[10],v[10],s;
int n,q1,q2,p1,p2,e,k,k1,i,j,l,z,z2;
int main()
{f=fopen("zone.in","r");fscanf(f,"%d",&n);
 for(i=1;i<=9;i++)fscanf(f,"%ld",&a[i]);
 for(i=1;i<=n&&!z;i++)
 {for(j=1;j<=n;j++)fscanf(f,"%ld",&b[j]);
  for(j=1;j<=n;j++)x[j]+=x[j]+x[j-1]+b[j];}
  for(j=1;j<=n&&!z;j++)
   {q1=0;for(k=1;k<=9&&!q1;k++)if(x[j]==a[k]){q1=j;v[k]=1;}
    if(q1)for(e=j+1;e<=n&&!z;e++)
	   {q2=0;for(k=1;k<=9&&!z;k++)
	     if(x[e]-x[q1]==a[k]&&!v[k])
	      {for(k1=1;k1<=9&&!z;k1++)
	       if(x[n]-x[e]==a[k1]&&k1!=k&&!v[k1])
		{z=1;q2=k;v[k1]=1;v[k]=1;}
	      }
	   }
   }
 }
 l=i;p1=i-1;for(i=1;i<=n;i++)x[i]=0;
 for(i=l;i<=n&&!z2;i++)
 {for(j=1;j<=n;j++)fscanf(f,"%ld",&b[j]);
  for(j=1;j<=n;j++)x[j]+=x[j]+x[j-1]+b[j];
   {for(k=1;k<=9;k++)if(x[q1]==a[k]&&!v[k])
     {for(e=1;e<=9;e++)if(x[q2]-x[q1]==a[e]&&!v[e]&&e!=k)
       {for(k1=1;k1<=9&&!z2;k1++)
		  if(x[n]-x[q2]==a[k1]&&k1!=k&&k1!=e&&!v[k1])
			{z2=1;a[k1]=1;a[k]=1;}
		}
	   }
     }
   }
 p2=i-1;
 fclose(f);f=fopen("zone.out","w");fprintf(f,"%d %d %d %d",p1,p2,q1,q2);fclose(f);
 return 0;
}