Pagini recente » Cod sursa (job #3178044) | Cod sursa (job #177015) | Cod sursa (job #1025085) | Cod sursa (job #2171114) | Cod sursa (job #1693075)
#include <iostream>
#include <fstream>
#include <climits>
#define INF 50000004
#define G 1003
#define W 5003
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
pair<int, int> v[G];
int dp[W];
int main() {
int g,w;
in >> g >> w;
for(int i = 1; i <= g; i++)
in >> v[i].first >> v[i].second;
for(int i = 0; i <= w; i++)
dp[i] = INF;
for(int i = 1; i <= g; i++) {
for(int j = w; j > v[i].first; j--)
dp[j] = min(dp[j], dp[j-v[i].first]+v[i].second);
for(int j = v[i].first; j >= 1; j--)
dp[j] = min(dp[j], v[i].second);
}
if(dp[w] == INF) {
out << "-1" << '\n';
} else {
out << dp[w] << '\n';
}
return 0;
}