Pagini recente » Cod sursa (job #1989709) | Cod sursa (job #806097) | Cod sursa (job #343228) | Cod sursa (job #2099810) | Cod sursa (job #1412703)
#include <fstream>
#include <algorithm>
#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] = 0;
}
for(int i = 1; i <= n; i ++)
{
for(int j = 1; j <= g; j++)
{
if(P[i] > j)
{
if(V[i-1][j] != 0)
{
V[i][j] = min(C[i], V[i-1][j]);
}
else
{
V[i][j] = C[i];
}
}
else
{
if(V[i-1][j - P[i]] == 0)
{
V[i][j] = 0;
}
else
{
V[i][j] = C[i] + V[i-1][j-P[i]];
}
}
}
}
if(V[n][g] == 0)
{
V[n][g] = -1;
}
fout << V[n][g];
fout.close();
return 0;
}