Pagini recente » Cod sursa (job #3330559) | Cod sursa (job #3322654) | Monitorul de evaluare | Cod sursa (job #3322651) | Cod sursa (job #3310301)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream fin("branza.in");
ofstream fout("branza.out");
int N, S, T;
fin >> N >> S >> T;
vector<int> cerere(N);
vector<int> cost(N);
for(int i=0; i<N; ++i) {
fin >> cost[i] >> cerere[i];
}
for(int i=N-1; i>=0; --i) {
int c = cost[i];
for(int j=1; i+j<N && j<T; ++j) {
c += S;
//cout << c << '\n';
if(c < cost[i+j]) {
cost[i+j] = c;
} else {
break;
}
}
}
unsigned long long int suma = 0;
for(int i=0; i<N; ++i) {
suma += 1ULL * cost[i] * cerere[i];
}
fout << suma << '\n';
return 0;
}