Cod sursa(job #254607)

Utilizator ioraIoana Radu iora Data 7 februarie 2009 13:13:05
Problema Cuburi2 Scor 20
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.67 kb
#include<stdio.h>
#include<values.h>
long p,min,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);
	for(i=1;i<=n;++i)
	  scanf("%ld",&a[i]);

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