Pagini recente » Cod sursa (job #1903753) | Cod sursa (job #375640) | Cod sursa (job #2042728) | Cod sursa (job #2232591) | Cod sursa (job #2370761)
#include <iostream>
#include <fstream>
#include <algorithm>
#define inf 0x3f3f3f3f
#define NMAX 1005
#define WMAX 15005
using namespace std;
ifstream fi("energii.in");
ofstream fo("energii.out");
int N, W;
pair<int, int> generators[NMAX];
int dp[WMAX];
int main()
{
fi >> N;
fi >> W;
int a, b;
for(int i = 1; i <= N; ++i)
{
fi >> a >> b;
generators[i] = {a, b};
}
for(int i = 1; i <= WMAX; ++i)
dp[i] = inf;
for(int i = 1; i <= N; ++i)
{
for(int j = W; j >= 0; --j)
{
if(dp[j] != inf)
dp[j + generators[i].first] = min(dp[j + generators[i].first], dp[j] + generators[i].second);
}
}
int minn = inf;
for(int i = W; i <= W + 10000; ++i)
minn = min(minn, dp[i]);
if(minn == inf)
fo << -1;
else
fo << minn;
}