Pagini recente » Cod sursa (job #3212218) | Cod sursa (job #2456305) | Cod sursa (job #1340931) | Cod sursa (job #876833) | Cod sursa (job #1907983)
#include <fstream>
#define in "rucsac.in"
#define out "rucsac.out"
#define max(a,b) (a > b ? a:b)
#define Nmax 5003
#define Gmax 10003
using namespace std;
ifstream fin(in);
ofstream fout(out);
int N,G;
int a1[Gmax],a2[Gmax];
int W,P;
inline void cpy()
{
for(int i=1; i<=G; ++i)
a1[i] = a2[i];
}
int main()
{
fin>>N>>G;
fin>>W>>P;
for(int i=W; i<=G; ++i)
a1[i] = P;
--N;
while(N--)
{
fin>>W>>P;
for(int i=1; i<=G; ++i)
{
a2[i] = a1[i];
if(W <= i)
a2[i] = max(a2[i], a1[i-W] + P);
}
cpy();
}
fout<<a2[G]<<"\n";
fin.close(); fout.close();
return 0;
}