Cod sursa(job #2500029)

Utilizator 1chiriacOctavian Neculau 1chiriac Data 27 noiembrie 2019 10:04:44
Problema Obiective Scor 0
Compilator cpp-64 Status done
Runda guritza Marime 0.6 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int n,s,t,nr[100003],cost[100003],dp[100003],suma;
int minim (int nr1, int nr2) {
    if(nr1<nr2)
        return nr1;
    return nr2;
}
int main () {
	freopen("branza.in","r",stdin);
	freopen("branza.out","w",stdout);
	scanf("%d%d%d", &n, &s, &t);
	scanf("%d%d", &cost[1], &nr[1]);
	dp[1]=nr[1]*cost[1];
	for(int i=2;i<=n;++i) {
		scanf("%d%d", &cost[i], &nr[i]);
		dp[i]=nr[i]*cost[i];
		for(int j=i-1;j>0 && i-j<t;--j)
			dp[i]=minim(dp[i],(i-j)*s*nr[i]+nr[i]*cost[j]);
	}
	for(int i=1;i<=n;++i)
        suma+=dp[i];
    printf("%d", suma);
	return 0;
}