Pagini recente » Cod sursa (job #1569102) | Cod sursa (job #1837253) | Cod sursa (job #1020937) | Cod sursa (job #754235) | Cod sursa (job #2503989)
#include <bits/stdc++.h>
#define MAXIM 10001
using namespace std;
int dp[MAXIM];
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
int n, w, EG, CG, z, pos, mine = -1;
cin >> n >> w;
for(int i = 0; i <= w; i++)
{
dp[i] = -1;
}
for(int i = 0; i < n; i++)
{
cin >> EG >> CG;
for(int j = w; j >= 0; j--)
{
if(dp[j] != -1)
{
z = dp[j] + CG;
pos = EG + j;
if(pos >= w && (mine == -1 || z == mine))
{
mine = z;
}
else if(pos < w && (dp[pos] == -1 || z > dp[pos]))
{
dp[pos] = z;
}
}
}
if(EG >= w && (mine == -1 || CG < mine))
{
mine = CG;
}
else if(EG < w && (dp[EG] == -1 || CG < dp[EG]))
{
dp[EG] = CG;
}
}
cout << mine;
return 0;
}