Pagini recente » Cod sursa (job #412341) | Cod sursa (job #1392206) | Cod sursa (job #2716354) | Cod sursa (job #3264819) | Cod sursa (job #3230117)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int dp[2][10010], i, j, n, w;
pair<int, int> a;
int s;
int main()
{
in >> n >> w;
for (i = 1; i <= n; i++)
{
in >> a.first >> a.second;
for (j = 1; j <= 10005; j++)
{
dp[i % 2][j] = dp[(i - 1) % 2][j];
if (j >= a.second)
dp[i % 2][j] = max(dp[i % 2][j], dp[(i - 1) % 2][j - a.second] + a.first);
}
}
i--;
for (j = 1; j <= 10005; j++)
if (dp[i % 2][j] >= w)
{
out << j;
return 0;
}
out << -1;
return 0;
}