Pagini recente » Borderou de evaluare (job #1750082) | Cod sursa (job #2716145)
#include <bits/stdc++.h>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
const int INF = 1e9;
struct object{
int val, wt;
} v[1001];
int n, W;
int minCost(int n, int W){
int dp[W + 1];
dp[0] = 0;
for(int i = 1;i <= W;i++)
dp[i] = INF;
for(int i = 1;i <= W;i++)
for(int j = 1;j <= n;j++)
if(v[j].wt <= i) dp[i] = min(dp[i], dp[i - v[j].wt] + v[j].val);
if(dp[W] == INF)
return -1;
return dp[W];
}
int main(){
f >> n >> W;
for(int i = 1;i <= n;i++)
f >> v[i].wt >> v[i].val;
g << minCost(n, W);
}