Pagini recente » Borderou de evaluare (job #185280) | Cod sursa (job #2787858) | Cod sursa (job #519516) | Cod sursa (job #657744) | Cod sursa (job #1987148)
#include <fstream>
#define NM 1001
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct obiect
{
int v, g;
};
obiect V[NM];
int n, m, M[5001];
int main()
{
int i, j;
fin >> n >> m;
for (i = 1; i <= n; i++)
{
fin >> V[i].g >> V[i].v;
}
for (i = 1; i <= n; i++)
{
for (j = m; j >= 0; j--)
{
if (j >= V[i].g)
{
M[j] = (M[j] < M[j - V[i].g] + V[i].v && (M[j - V[i].g]!=0 || j==V[i].g)) ? M[j - V[i].g]+V[i].v:M[j];
}
}
}
if (M[m]==0)
fout<<-1;
else
fout<<M[m];
return 0;
}