Pagini recente » Cod sursa (job #1203889) | Cod sursa (job #1696396) | Cod sursa (job #1703869) | Cod sursa (job #1916448) | Cod sursa (job #1853261)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
struct proiect{
int e,c;
}v[1005];
int g,w,cost[1000005]; //cost[j] = costul minim necesar obtinerii energiei j pt j < w
//cost[w] = costul minim necesar obtinerii energiei cel putin w
const int INF=10000000;
int maxi=0, mini=INF;
int main()
{
cin >> g >> w;
for(int i=1; i<=g; i++){
cin >> v[i].e >> v[i].c;
if(v[i].e > maxi)
maxi=v[i].e;
}
for(int j=1; j<=w+10001; j++){
cost[j]=INF;
}
for(int i=1; i<=g; i++)
for(int j=w; j>=0; j--)
if(cost[j]!=INF && cost[j]+v[i].c < cost[j+v[i].e])
cost[j+v[i].e] = cost[j] + v[i].c;
for(int i=w; i<=w + maxi; i++)
if(cost[i] < mini)
mini=cost[i];
cout << mini;
return 0;
}