Pagini recente » Cod sursa (job #1587989) | Cod sursa (job #302506) | Cod sursa (job #2156831) | Cod sursa (job #2471514) | Cod sursa (job #1006892)
#include <iostream>
#include<fstream>
using namespace std;
int n,greutate, v[5073],g[5073],last[10073],best[10073], rasp=0;
void problem()
{
for (int i=0;i<=greutate;i++)
best[i]=0;
for (int i=0;i<n;i++)
for (int j=greutate-g[i];j>=0;j--)
{
best[j+g[i]]=max(best[j+g[i]], v[i]+best[j]);
if (best[j+g[i]]>rasp)
rasp=best[j+g[i]];
last[j+g[i]]=i;
}
}
int main()
{
ifstream in("rucsac.in");
in>>n>>greutate;
for (int i=0;i<n;i++)
{
in>>g[i]>>v[i];
}
problem();
ofstream out("rucsac.out");
out<<rasp;
return 0;
}