Pagini recente » Cod sursa (job #1897960) | Cod sursa (job #1402545) | Cod sursa (job #1079034) | Cod sursa (job #2245306) | Cod sursa (job #1115008)
#include <climits>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int MAXW = 15003;
const int MAXG = 10002;
const int INF = INT_MAX;
int G, W, d[MAXW], sol = INF;
void initializeaza()
{
for (int i = 1; i <= W + MAXG; ++i)
d[i] = INF;
}
int main()
{
int put, cost;
fin >> G >> W;
initializeaza();
for (int j = 0; j < G; ++j)
{
fin >> put >> cost;
for (int i = W; i >= 0; --i)
if ( d[i] != INF && d[i + put] > d[i] + cost )
d[i + put] = d[i] + cost;
}
for ( int i = W + MAXG; i >= W; --i)
if ( d[i] < sol )
sol = d[i];
if ( sol == INF )
fout << "-1";
else
fout << sol;
fin.close();
fout.close();
return 0;
}