Pagini recente » Cod sursa (job #2309906) | Cod sursa (job #801169) | Cod sursa (job #1430332) | Cod sursa (job #2221003) | Cod sursa (job #2063213)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("rucsac.in");
ofstream out ("rucsac.out");
struct obj
{
int g;
int v;
};
obj a[5010];
int n,gmax,smax;
long long int b[10010];
void load()
{
int i;
in>>n>>gmax;
for(i=1; i<=n; i++)
in>>a[i].g>>a[i].v;
}
void pd()
{
int i;
long long maxi=0;
for( i=1; i<=gmax; i++)
b[i]=-1;
b[0]=0;
for(i=1; i<=n; i++)
{
for(int j=gmax-a[i].g; j>=0; j--)
{
if( b[j] != -1)
{
if(b[j] + a[i].v > b[a[i].g+j]) b[j+a[i].g] =b[j] + a[i].v;
maxi=max(maxi,b[j+a[i].g]);
}
}
}
out<<maxi;
}
int main()
{
load();
pd();
return 0;
}