Pagini recente » Cod sursa (job #878684) | Cod sursa (job #503372) | Cod sursa (job #89652) | Cod sursa (job #1993208) | Cod sursa (job #1412839)
#include <fstream>
#include <algorithm>
#include <limits>
#define MAXW 5002
#define MAXN 1002
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int V[MAXN][MAXW];
int C[MAXN], P[MAXN];
int main()
{
int n, g;
fin >> n >> g;
for(int i = 1; i <= n;i++)
{
fin >> P[i] >> C[i];
}
fin.close();
for(int i = 0; i <= g; i++)
{
V[0][i] = 10002;
}
for(int i = 1; i <= n; i ++)
{
for(int j = 1; j <= g; j++)
{
//V[i][j] = V[i-1][j];
if(P[i] >= j)
{
V[i][j] = min(C[i], V[i-1][j]);
}
else
{
if(V[i-1][j-P[i]] == 10002)
{
V[i][j] = V[i-1][j];
}
else
{
V[i][j] = min(V[i-1][j],C[i] + V[i-1][j-P[i]]);
}
}
}
}
if(V[n][g] == 10002)
{
V[n][g] = -1;
}
fout << V[n][g];
fout.close();
return 0;
}