Pagini recente » Cod sursa (job #2402594) | Cod sursa (job #2888661) | Cod sursa (job #34496) | Cod sursa (job #2984368) | Cod sursa (job #2205682)
#include <fstream>
#include <cstring>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
const int LIM = 20005, INF = (1 << 29);
int n, w, dp[LIM];
int main()
{
for(int i = 1; i < LIM; ++i)
dp[i] = INF;
cin >> n >> w;
while( n-- )
{
int e, c;
cin >> e >> c;
for(int i = 0; i < w; ++i)
dp[ i + e ] = min(dp[ i + e ], dp[i] + c);
}
int minim = INF;
for(int i = w; i < LIM; ++i)
minim = min(minim, dp[i]);
if(minim == INF)
cout << -1;
else
cout << minim;
return 0;
}