Pagini recente » Cod sursa (job #1417815) | Cod sursa (job #620719) | Cod sursa (job #2728835) | Cod sursa (job #1347138) | Cod sursa (job #2503560)
#include <bits/stdc++.h>
#define MAXIM 10001
using namespace std;
int dp[MAXIM];
int main()
{
freopen("litere.in", "r", stdin);
freopen("output.out", "w", stdin);
int nr, w, EG, CG, z, pos, mine = -1;
cin >> nr >> w;
for(int i = 0; i <= w; i++)
{
dp[i] = -1;
}
for(int i = 0; i < nr; 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;
}