Cod sursa(job #67617)

Utilizator peanutzAndrei Homorodean peanutz Data 25 iunie 2007 12:40:57
Problema Branza Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda Finala, Clasa a 10-a Marime 0.8 kb
#include <stdio.h>
#define NMAX 100000

int a[NMAX+3];
int c[NMAX+3], p[NMAX+3];
int n, t, s;

int main()
{
	int i, j, k, until;
	freopen("branza.in", "r", stdin);
	freopen("branza.out", "w", stdout);

	scanf("%d %d %d", &n, &s, &t);

	for(i = 1; i <= n; ++i)
	{
		scanf("%d %d", p+i, c+i);
		
		//printf("i = %d\n", i);
		for(a[i] = p[i]*c[i], until = i - t + 1, j = i-1; j >= until && j > 0; --j)
		{
		//printf("j = %d, p[j] = %d, c[i] = %d, s*(i-j) = %d\n", j, p[j], c[i],  s*(i-j));
			if(a[i] > p[j] * c[i] + c[i] * s * (i-j))
			{
				a[i] = p[j] * c[i] + c[i] * s * (i-j);
			}
		}
		a[i] += a[i-1];
        	//printf("a[i] = %d\n\n", a[i]);
	}
	printf("%d\n", a[n]);

	return 0;
}