Pagini recente » Cod sursa (job #2732407) | Cod sursa (job #795081) | Cod sursa (job #2658696) | Cod sursa (job #1292623) | Cod sursa (job #2517834)
#include <fstream>
using namespace std;
ifstream cin("cuburi2.in");
ofstream cout("cuburi2.out");
#define N 250001
int v2[N],st[N],dr[N],sst[N],sdr[N];
int main()
{
int n,m,mm,i,s=0,mini,a,x,y,rez,xx,yy;
cin>>n>>mm;
for(i=1;i<=n;i++)
{
cin>>v2[i];
a=v2[i];
//v[i]=v[i-1]+s;
st[i]=st[i-1]+s;
s+=a;
sst[i]=s;
}
s=0;
for(i=n;i>0;i--)
{
dr[i]=dr[i+1]+s;
//v[i]+=dr[i];
s+=v2[i];
sdr[i]=s;
}
st[n+1]=st[n];
for(i=1;i<=mm;i++)
{
cin>>x>>y;
xx=x;
yy=y;
mini=-1;
while(x<=y)
{
m=(x+y)/2;
if(st[m]-st[xx]<=st[yy+1]-st[m])
{
x=m+1;
rez=m;
}
else
y=m-1;
}
cout<<rez<<" "<<st[rez]-st[xx]-sst[xx-1]*(rez-xx)+dr[rez]-dr[yy]-sdr[yy+1]*(yy-rez)<<'\n';
}
return 0;
}