Pagini recente » Cod sursa (job #1031146) | Profil StarGold2 | Cod sursa (job #1563940) | Cod sursa (job #389745) | Cod sursa (job #2415512)
#include <cstdio>
#include <algorithm>
#include <climits>
#include <vector>
using namespace std;
struct engine{
int energy,price;
engine(){}
engine(int a,int b){energy = a;price = b;}
};
vector<engine>v;
int dp[10000005];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int n,voltage,s = 0,x,y;
scanf("%d%d",&n,&voltage);
for(int i = 0 ; i < n ; i++)
{
scanf("%d%d",&x,&y);
engine temp(x,y);
v.push_back(temp);
s += y;
}
if(s < voltage)
{
printf("-1\n");
return 0;
}
for(int i = 1 ; i <= s ; i++)
dp[i] = 10000005;
for(int i = 0 ; i < v.size() ; i++)
{
for(int j = voltage ; j >= 0 ; j--)
dp[min(voltage,j+v[i].energy)] = min(dp[min(voltage,j+v[i].energy)],dp[j]+v[i].price);
}
printf("%d\n",dp[voltage]);
return 0;
}