Cod sursa(job #122469)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 12 ianuarie 2008 15:15:57
Problema Bilute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#include <math.h>

long long i, n, a[30010], b[30010], v1[30010], v2[30010], p, poz, min;

int main() {
	freopen("bilute.in", "r", stdin);
	freopen("bilute.out", "w", stdout);
	scanf("%lld", &n);
	for (i = 1; i <= n; ++i) {
		scanf("%lld %lld", &a[i], &b[i]);
	}
	v1[1] = 0;
	p = a[1];
	for (i = 2; i <= n; ++i) {
		v1[i] = v1[i - 1] + a[i - 1] * b[i - 1] + p;
		p += a[i];
	}

	v2[n] = 0;
	p = a[n];
	for (i = n - 1; i >= 1; --i) {
		v2[i] = v2[i + 1] + a[i + 1] * b[i + 1] + p;
		p += a[i];
	}
	min = 20000000000000000;
	for (i = 1; i <= n; ++i) {
		if (min > v1[i] + v2[i]) {
			min = v1[i] + v2[i];
			poz = i;
		}
	}
	printf("%lld %lld\n", poz, min);
	return 0;
}