Pagini recente » Cod sursa (job #543524) | Cod sursa (job #1325455) | Cod sursa (job #1430256) | Cod sursa (job #1173140) | Cod sursa (job #2360026)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int const NMAX = 1005;
int const EMAX = 5005;
int n, E;
int c[NMAX], v[NMAX];
int dp[NMAX][EMAX];
void Read()
{
int i;
fin >> n >> E;
for(i = 1; i <= n; i++)
fin >> v[i] >> c[i];
}
void DP()
{
int i, j;
for (i = 0; i <= E; i++)
dp[1][i] = 1e9;
for (i = 2; i <= n ; i++)
{
for (j = 1; j <= E; j++)
if (j >= v[i])
dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - v[i]] + c[i]);
else dp[i][j] = min(dp[i - 1][j], c[i]);
}
if (dp[n][E] == 1000000) fout << "-1";
else fout << dp[n][E];
}
int main()
{
Read();
DP();
return 0;
}