Pagini recente » Cod sursa (job #724066) | Cod sursa (job #135781) | Cod sursa (job #1893442) | Cod sursa (job #2561118) | Cod sursa (job #3317368)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("cuburi2.in");
ofstream fout("cuburi2.out");
int v[250001];
int sp[250001];
signed main()
{
int n,m;
fin>>n>>m;
for(int i=1;i<=n;i++)
{
fin>>v[i];
sp[i]=v[i]*i+sp[i-1];
v[i]+=v[i-1];
}
for(int i=1;i<=m;i++)
{
int a,b,val;
fin>>a>>b;
int sum=v[b]-v[a-1];
sum++;
sum/=2;
sum+=v[a-1];
int st=a,dr=b;
while(st<dr)
{
int mid=(st+dr)/2;
if(v[mid]<sum)
{
st=mid+1;
}
else
{
dr=mid;
}
}
fout<<dr<<" ";
val=(v[dr]-v[a-1])*dr-sp[dr]+sp[a-1];
val+=(sp[b]-sp[dr-1]-dr*(v[b]-v[dr-1]));
fout<<val<<'\n';
}
return 0;
}