Pagini recente » Cod sursa (job #2179635) | Cod sursa (job #1270987) | Cod sursa (job #627939) | Cod sursa (job #118563) | Cod sursa (job #1183703)
#include <fstream>
#define NMax 1010
#define GMax 5010
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct obiect {int val,we;};
obiect a[NMax];
int ruc[NMax][GMax];
int i,j,n,g;
void citire()
{fin>>n>>g;
for (i=1;i<=n;i++)
fin>>a[i].we>>a[i].val;
}
void rezolvare()
{for (i=1;i<=n;i++)
for (j=1;j<=g;j++)
if ((a[i].we<=j) && (a[i].val+ruc[i-1][j-a[i].we]>ruc[i-1][j]))
ruc[i][j]=a[i].val+ruc[i-1][j-a[i].we];
else
ruc[i][j]=ruc[i-1][j];
}
int main()
{citire();
rezolvare();
if (ruc[n][g]) fout<<ruc[n][g]<<'\n';
else fout<<"-1";
return 0;
}