Pagini recente » Cod sursa (job #1913621) | Cod sursa (job #1046043) | Cod sursa (job #2572568) | Cod sursa (job #2505756) | Cod sursa (job #254476)
Cod sursa(job #254476)
#include <stdio.h>
#define MAX_N 250010
int a[MAX_N];
int i, j, k, n, m, p, q, poz;
long long s1[MAX_N], s2[MAX_N];
long long st, dr, sol;
int main() {
freopen("cuburi2.in", "r", stdin);
freopen("cuburi2.out", "w", stdout);
scanf("%d %d", &n, &m);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i = 1; i <= m; i++) {
scanf("%d %d", &p, &q);
for (j = p - 1; j <= q + 1; j++) {
s1[j] = s2[j] = 0;
if (j >= p && j <= q) s1[j] = s1[j - 1] + a[j];
}
for (j = q; j >= p; j--) {
s2[j] = s2[j + 1] + a[j];
dr = dr + s2[j + 1];
}
sol = 0; poz = 0; st = 0;
for (j = p; j <= q; j++) {
if (sol == 0 || dr + st < sol) {
sol = dr + st;
poz = j;
}
st = st + s1[j];
dr = dr - s2[j + 1];
}
printf("%d %lld\n", poz, sol);
}
return 0;
}