Pagini recente » Cod sursa (job #1773074) | Cod sursa (job #242536) | Cod sursa (job #917056) | Cod sursa (job #403772) | Cod sursa (job #1558966)
#include<fstream>
using namespace std;
long long v[250002],n;
long long s1[250002],s2[250002];
int main()
{
ifstream f("cuburi2.in");
ofstream g("cuburi2.out");
int m,q,w;
f>>n>>m;
for (int i=1;i<=n;i++)
{f>>v[i];
v[i]+=v[i-1];
s1[i]=v[i]+s1[i-1];}
for (int i=n;i>0;i--)
s2[i]=s2[i+1]+v[n]-v[i-1];
while (m--)
{
int q,w;
f>>q>>w;
int poz=q,d;
for (d=1;d<=w-q+1;d<<=1);
for (;d;d>>=1)
if ((poz+d<=w)&&(v[poz+d-1]-v[q-1]<v[w]-v[poz+d-1]))
poz+=d;
long long st,dr;
st=s1[poz-1]-s1[q-1]-(poz-q)*v[q-1];
dr=s2[poz+1]-s2[w+1]-(w-poz)*(v[n]-v[w]);
g<<poz<<" "<<st+dr<<'\n';
}
return 0;
}