Pagini recente » Cod sursa (job #191027) | Cod sursa (job #2791377) | Cod sursa (job #3189113) | Cod sursa (job #1315889) | Cod sursa (job #2080722)
#include <fstream>
#define dim 250002
using namespace std;
ifstream in ("cuburi2.in");
ofstream out ("cuburi2.out");
int v[dim];
long long s[dim];
int x,y;
long long verif(int ind)
{
long long st,dr;
st=(v[ind-1]-v[x-1])*ind-(s[ind-1]-s[x-1]);
dr=(s[y]-s[ind])-(v[y]-v[ind])*ind;
return st+dr;
}
int main()
{
int n,q,i,r,pas,start;
long long a;
in>>n>>q;
for (i=1;i<=n;i++)
{
in>>a;
v[i]=a+v[i-1];
s[i]=s[i-1]+i*a;
}
v[n+1]=v[n];
s[n+1]=s[n];
for (start=1;(start<<1)<=n;start<<=1) {
}
for (i=1;i<=q;i++)
{
in>>x>>y;
r=x;
pas=start;
while (pas)
{
if (r+pas<=y && verif(r+pas)>=verif(r+pas+1))
r+=pas;
pas/=2;
}
if (r+1<=y && verif(r)>=verif(r+1))
r++;
out<<r<<" "<<verif(r)<<'\n';
}
return 0;
}