Cod sursa(job #116827)

Utilizator bogdan2412Bogdan-Cristian Tataroiu bogdan2412 Data 19 decembrie 2007 17:55:59
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

#define MAXN 30005

int N, C[MAXN], L[MAXN], sC[MAXN];
long long MIN; int MINi;

int main()
{
	freopen("bilute.in", "rt", stdin);
	freopen("bilute.out", "wt", stdout);

	scanf("%d", &N);
	long long S = 0;
	for (int i = 0; i < N; i++)
	{
		scanf("%d %d", C + i, L + i);
		S += (i > 0) * L[i] * C[i] + i * C[i];
		if (i)
			sC[i] = sC[i - 1] + C[i];
		else
			sC[i] = C[i];
	}

	MIN = S; MINi = 0;
	for (int i = 1; i < N; i++)
	{
		S -= L[i] * C[i]; S += L[i - 1] * C[i - 1];

		S += sC[i - 1]; S -= sC[N - 1] - sC[i - 1];
		if (S < MIN)
			MIN = S,
			MINi = i;
	}

	printf("%d %lld\n", MINi + 1, MIN);
	return 0;
}