Pagini recente » Cod sursa (job #36882) | Cod sursa (job #2238782) | Cod sursa (job #1424187) | Cod sursa (job #511629) | Cod sursa (job #2760047)
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
static int p[5002],profit[10002],g[5002];
int main() {
int n,k;
in>>n>>k;
for(int i=0;i<n;i++) {
in >> g[i];
in>>p[i];
}
for(int j=1;j<=k;j++)
profit[j]=-1;
profit[0]=0;
for(int i=0;i<n;i++)
{
for(int j=k-g[i];j>=0;j--)
{
if(profit[j]!=-1 && profit[j]+p[i]>profit[j+g[i]])
{
profit[j+g[i]]=profit[j]+p[i];
}
}
}
int rasp=-1;
for(int j=1;j<=k;j++)
rasp=max(rasp,profit[j]);
out<<rasp;
return 0;
}