Pagini recente » Cod sursa (job #811051) | Cod sursa (job #2360016)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int const GMAX = 1005;
int const WMAX = 5005;
int N, C;
int dp[GMAX][WMAX];
int e[GMAX], c[GMAX];
void Read()
{
int i;
fin >> N >> C;
for (i = 1; i <= N; i++)
fin >> e[i] >> c[i];
}
void DP()
{
int i, j;
for(i = 0; i <= C; i++)
dp[1][i] = 1e9;
for (i = 2; i <= N; i++)
for (j = 2; j <= C; j++)
{
if(j - e[j] >= 0)
dp[i][j] = min(dp[i-1][j], dp[i-1][j - e[i]] + c[i]);
else dp[i][j] = min(dp[i-1][j], c[i]);
}
if(dp[N][C] == 1e6) fout << "-1";
else fout << dp[N][C];
}
int main()
{
Read();
DP();
return 0;
}