Pagini recente » Cod sursa (job #2495468) | Cod sursa (job #141282) | Cod sursa (job #3172458) | Cod sursa (job #3225296) | Cod sursa (job #2859809)
#include <fstream>
#include <climits>
#define int long long
using namespace std;
const int NMAX = 1003, VALMAX = 10003;
int e[NMAX], c[NMAX];
int dp[VALMAX * NMAX];
signed main()
{
ifstream cin("energii.in");
ofstream cout("energii.out");
int n, w, i, mx = 0, j;
cin >> n >> w;
for (i = 1; i <= n; i++)
{
cin >> e[i] >> c[i];
mx += c[i];
}
for (i = 1; i <= mx; i++)
dp[i] = -1;
dp[0] = 0;
for (i = 1; i <= n; i++)
for (j = 0; j + c[i] <= mx; j++)
if (dp[j] != -1)
dp[j + c[i]] = max(dp[j] + e[i], dp[j + c[i]]);
for (i = 1; i <= mx; i++)
if (dp[i] >= w)
{
cout << i;
return 0;
}
cout << -1;
}