Pagini recente » Cod sursa (job #763941) | Cod sursa (job #2107595) | Cod sursa (job #2482882) | Cod sursa (job #1927614) | Cod sursa (job #2371879)
#include <bits/stdc++.h>
#define NMAX 1005
#define WMAX 15005
#define INF 0x3f3f3f3f
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
pair<int, int> generators[NMAX];
int dp[WMAX];
int main()
{
int n, w;
f >> n >> w;
for (int i = 1, tc, te; i <= n; i++)
{
f >> tc >> te;
generators[i] = {tc, te};
}
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 answer = INF;
for (int i = w; i <= w + 10000; i++)
{
answer = min(answer, dp[i]);
}
if (answer == INF)
g << -1;
else
g << answer;
}