Pagini recente » Cod sursa (job #365961) | Cod sursa (job #2101405) | Cod sursa (job #1021272) | Cod sursa (job #2634877) | Cod sursa (job #254617)
Cod sursa(job #254617)
#include<stdio.h>
#include<string.h>
long n,m,st,dr;
long long min=2500000000000;//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("%ld",&v[i]);
}
for(j=1;j<=m;j++)
{
min=2500000000000;
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;
}