Pagini recente » Cod sursa (job #469670) | Cod sursa (job #1481094) | Cod sursa (job #3261248) | Cod sursa (job #2679562) | Cod sursa (job #2874832)
#include <fstream>
#define NMAX 250000
#define int long long
using namespace std;
int v[NMAX + 1], sp[NMAX + 1],spp[NMAX + 1];
signed main(){
ifstream fin ("cuburi2.in");
ofstream fout ("cuburi2.out");
int n, q;
fin >> n >> q;
for (int i = 1; i <= n; i++){
fin >> v[i];
sp[i] = sp[i - 1] + v[i];
spp[i] = spp[i - 1] + i * v[i];
}
while (q--){
int x, y;
fin >> x >> y;
int st;
st = x;
int pas = ( 1 << 17 );
while (pas > 0){
if (st + pas <= y && 2 * sp[st + pas - 1] < sp[x - 1] + sp[y])
st += pas;
pas >>= 1;
}
fout << st << " " << spp[y] - spp[st] + st * ((sp[st] + sp[st - 1]) - (sp[x - 1] + sp[y])) - (spp[st - 1] - spp[x - 1]) << "\n";
}
return 0;
}