Pagini recente » Cod sursa (job #716770) | Cod sursa (job #383223) | Cod sursa (job #1019758) | Cod sursa (job #2577631) | Cod sursa (job #2282626)
#include<cstdio>
long long v[250001];
long long kv[250001];
long long suma(int a,int b,int p){
long long s1=p*(v[p-1]-v[a-1])-(kv[p-1]-kv[a-1]);
long long s2=(kv[b]-kv[p])-p*(v[b]-v[p]);
return s1+s2;
}
int main(){
int n,m,i,k,x,y,p;
long long s1,s2;
freopen("cuburi2.in","r",stdin);
freopen("cuburi2.out","w",stdout);
scanf("%d%d",&n,&m);
for(k=1;k<=n;k++){
scanf("%lld",&v[k]);
kv[k]=k*v[k];
v[k]+=v[k-1];
kv[k]+=kv[k-1];
}
for(i=1;i<=m;i++){
scanf("%d%d",&x,&y);
p=(kv[y]-kv[x-1])/(v[y]-v[x-1]);
s1=suma(x,y,p);s2=suma(x,y,p+1);
if(s1<s2)
printf("%d %lld\n",p,s1);
else
printf("%d %lld\n",p+1,s2);
}
return 0;
}