Pagini recente » Cod sursa (job #87241) | Cod sursa (job #1829594) | Cod sursa (job #714993) | Cod sursa (job #1692934) | Cod sursa (job #1987161)
#include <fstream>
#define NM 1001
#define MAXN 10000
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct obiect
{
int v, g;
};
obiect V[NM];
int n, m, M[MAXN+5];
int main()
{
int i, j, minim;
fin >> n >> m;
minim=MAXN;
for (i = 1; i <= n; i++)
{
fin >> V[i].v >> V[i].g;
}
for (i = 1; i <= n; i++)
{
for (j = minim; 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]+V[i].v:M[j];
if (M[j]==m && j<minim)
minim=j;
}
}
}
if (minim==MAXN)
fout<<-1;
else
fout<<minim;
return 0;
}