1
0
Fork 0
cp/ntu/chenhlech.c

42 lines
667 B
C

#include <stdlib.h>
#include <stdio.h>
unsigned long long delta(long *a, short len)
{
unsigned long long sum = 0, val, val0, left = 0;
short i;
for (i = 0; i <= len; i++)
sum += a[i];
val = sum;
for (i = 0; i < len; i++) {
left += a[i];
val0 = llabs(sum - left * 2);
if (val0 < val)
val = val0;
}
return val;
}
int main()
{
short n, q, *u, *v, i;
scanf("%hd %hd", &n, &q);
long *a = malloc(n * 4);
for (i = 0; i < n; i++)
scanf("%ld", &a[i]);
u = malloc(q * 2);
v = malloc(q * 2);
for (i = 0; i < q; i++)
scanf("%hd %hd", &u[i], &v[i]);
for (i = 0; i < q; i++)
printf("%lld\n", delta(a + u[i] - 1, v[i] - u[i]));
return 0;
}