Cod sursa(job #254400)

Utilizator ioraIoana Radu iora Data 7 februarie 2009 11:53:46
Problema Cuburi2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.73 kb
#include<stdio.h>
#include<values.h>
long p,max,j,sum,st,dr,n,m,i,a[250000],sst[250000],sdr[250000];
int main()
{
	freopen("cuburi2.in","r",stdin);
	freopen("cuburi2.out","w",stdout);
	scanf("%ld%ld",&n,&m);
	scanf("%ld%ld",&a[1],&a[2]);
	sst[1]=0;
	sst[2]=a[1];
	sum=a[1]+a[2];
	for(i=3;i<=n;++i)
	  {
		scanf("%ld",&a[i]);
		sst[i]=sst[i-1]+sum;
		sum+=a[i];
	  }

	sdr[n]=0;
	sdr[n-1]=a[n];
	sum=a[n]+a[n-1];
	for(i=n-2;i>=1;--i)
	{
	  sdr[i]=sdr[i+1]+sum;
	  sum+=a[i];
	}

	for(i=1;i<=m;++i)
	 {
	   scanf("%ld%ld",&st,&dr);
	   sum=sst[st]+sdr[dr];
	   max=MAXLONG;
	   for(j=st;j<=dr;++j)
		 if(sst[j]+sdr[j]-sum<max) { max=sst[j]+sdr[j]-sum; p=j;}
	   printf("%ld %ld\n",p,max);
	 }
	return 0;
}