Cod sursa(job #254622)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 7 februarie 2009 13:18:30
Problema Cuburi2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.93 kb
#include<stdio.h>
#include<string.h>
long n,m,st,dr;
long long min=25000000000;//min=2500000000000
long long v[250010],isp[250010],sp[250010],snr[250010],isnr[250010]; //250010


void recursiv()
{
long i,j;
for(i=st;i<=dr;i++)
  {
  sp[i]=sp[i-1]+snr[i-1];
  snr[i]=snr[i-1]+v[i];
  if(sp[i]+isp[i]<min)
    {
    min=sp[i]+isp[i];
    j=i;
    }
  }
printf("%ld ",j);
printf("%lld\n",min);
}


void read()
{
freopen("cuburi2.in","r",stdin);
freopen("cuburi2.out","w",stdout);
scanf("%ld%ld",&n,&m);
long i,j;
for(i=1;i<=n;i++)
  {
  scanf("%lld",&v[i]);
  }
for(j=1;j<=m;j++)
  {
  min=25000000000;
  scanf("%ld%ld",&st,&dr);
  for(i=dr;i>st;i--)
    {
    isnr[i-1]=isnr[i]+v[i];
    isp[i-1]=isp[i]+isnr[i-1];
    }
  recursiv();
  memset(isp,0,sizeof(isp));
  memset(sp,0,sizeof(isp));
  memset(isnr,0,sizeof(isp));
  memset(snr,0,sizeof(isp));

  }
}


int main()
{
read();
return 0;
}