Cod sursa(job #254293)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 7 februarie 2009 10:49:03
Problema Cuburi2 Scor 20
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.7 kb
#include <stdio.h>
#include <math.h>

long n, m, x, y, sumcur, min, poz, a[5010], v[5010], i, j;

int main() {
	freopen("cuburi2.in", "r", stdin);
	freopen("cuburi2.out", "w", stdout);
	scanf("%ld %ld", &n, &m);
	for (i = 1; i <= n; ++i) {
		scanf("%ld", &a[i]);
		v[i] = v[i - 1] + a[i];
	}
	for (i = 1; i <= m; ++i) {
		scanf("%ld %ld", &x, &y);
		sumcur = 0;
		for (j = x + 1; j <= y; ++j) {
			sumcur += a[j] * (j - x); 
		}
		min = sumcur;
		poz = x;
		for (j = x + 1; j <= y; ++j) {
			sumcur -= a[j];
			sumcur += (v[j - 1] - v[x - 1]);
			sumcur -= v[y] - v[j];
			if (sumcur < min) {
				min = sumcur;
				poz = j;
			}
		}
		printf("%ld %ld\n", poz, min);
	}
	return 0;
}