Cod sursa(job #18187)

Utilizator robbyRobertino robert robby Data 18 februarie 2007 10:29:32
Problema Amlei Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 2, Clasa a 9-a si gimnaziu Marime 1.06 kb
#include <stdio.h>
#define nmax 25001
long n,t,u,a[nmax],b[nmax],i,j,v[11][nmax][2],na,nb,x,nr,ok,s1,s2,verif,aux;

FILE *f,*g;
int main()
{
  f=fopen("amlei.in","rt");
  g=fopen("amlei.out","wt");
  aux=0;
  do
  {
	aux++;
	fscanf(f,"%ld %ld %ld",&n,&t,&u);
	na=n*t;
	for (i=1;i<=na;i++)
	  fscanf(f,"%ld",&a[i]);
	nb=n*u;
	for (i=1;i<=nb;i++)
	  fscanf(f,"%ld",&b[i]);
	nr=0;
	for (i=1;i<=na;i+=n)
	  {
		x=i+n;
		nr++;
		for (j=i;j<x;j++)
		  {
			v[aux][nr][0]+=a[j];
			if (a[j]>=0)
			  v[aux][nr][1]+=a[j];
			 else
			  v[aux][nr][1]-=a[j];
		  }
	  }
	ok=1;
	nr=0;
	for (i=1;i<=nb;i+=n)
	  {
		x=i+n;
		nr++;
		s1=s2=0;
		for (j=i;j<x;j++)
		  {
			s1+=b[j];
			if (b[j]>=0)
			  s2+=b[j];
			 else
			  s2-=b[j];
		  }
		verif=1;
		for (j=1;j<=n;j++)
		  if (s1==v[aux][j][0]&&s2==v[aux][j][1])
			{
			  verif=0;
			  break;
			}
		if (verif)
		  {
			ok=0;
			break;
		  }
	  }
	if (ok)
	  fprintf(g,"DA\n");
	 else
	  fprintf(g,"NU\n");
  }
  while (!feof(f));
  fclose(f);
  fclose(g);
  return 0;
}