Pagini recente » Cod sursa (job #379328) | Cod sursa (job #2958009) | Cod sursa (job #2567880) | Cod sursa (job #2374590) | Cod sursa (job #2219230)
#include <iostream>
#include <algorithm>
#include <fstream>
#include <climits>
using namespace std;
int cost[1002];
int powgen[1002];
int arr[5002];
int energy(int n, int capacity) {
for (int i = 0; i < n; i++) {
for (int j = capacity; j >= 0; j--) {
if (j <= powgen[i]) {
arr[j] = min(cost[i], arr[j]);
}
else {
arr[j] = min(arr[j], cost[i] + arr[j - powgen[i]]);
}
}
}
return arr[capacity];
}
int main() {
ifstream fin("energii.in");
ofstream fout("energii.out");
int n, c;
fin >> n >> c;
for (int i = 0; i <= c; i++)
arr[i] = INT_MAX;
for (int i = 0; i < n; i++) {
fin >> powgen[i];
fin >> cost[i];
}
int res = energy(n, c);
if (res == INT_MAX) {
res = -1;
}
fout << res;
return 0;
}