Pagini recente » Cod sursa (job #1187893) | Cod sursa (job #2815215) | Cod sursa (job #1365217) | Cod sursa (job #1563949) | Cod sursa (job #1007120)
#include <iostream>
#include <fstream>
#define Nmax 5001
#define Gmax 10001
#define BLA -0x3f3f3f3f
using namespace std;
int N,G;
int g[Nmax];
int p[Nmax];
int sol[Gmax], P=-1;
void read()
{
ifstream f("rucsac.in");
f>>N>>G;
for(int i=1;i<=N;++i)
f>>g[i]>>p[i];
f.close();
}
void solve()
{
int i,j,best;
for(i=1;i<=G;++i)
sol[i] = BLA;
for(i=1;i<=N;++i)
for(j=G - g[i];j>=0;--j)
if(sol[j] != BLA && sol[j] + p[i] > sol[j + g[i]])
{
sol[j + g[i]] = sol[j] + p[i];
P = max(P, sol[j + g[i]]);
}
}
void write()
{
ofstream g("rucsac.out");
g<<P<<"\n";
g.close();
}
int main()
{
read();
solve();
write();
return 0;
}