Pagini recente » Cod sursa (job #46699) | Cod sursa (job #2130534) | Cod sursa (job #2755807) | Cod sursa (job #3241536) | Cod sursa (job #2542538)
#include <iostream>
#include <fstream>
using namespace std;
const int NMAX = 5005;
const int GMAXX = 10005;
const int oo = (1<<30);
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int N,GMax;
int Rez[GMAXX],k;
int W[NMAX],V[NMAX];
void Read(){
f >> N >> GMax;
for(int i = 1; i <= N;i++)
f >> W[i] >> V[i];
}
void Solve(){
for(int i = 1; i <= GMax;i++)
Rez[i] = -oo;
for(int i = 1; i <= N;i++)
for(int j = GMax - W[i];j >=0;j--)
if(Rez[j]!= -oo)
Rez[j + W[i]] = max(Rez[j + W[i]] , Rez[j] + V[i]);
}
int main()
{
Read();
Solve();
g << Rez[GMax];
return 0;
}