Pagini recente » Cod sursa (job #471034) | Cod sursa (job #1061653) | Cod sursa (job #1808684) | Cod sursa (job #2414562) | Cod sursa (job #864060)
Cod sursa(job #864060)
#include <iostream>
#include <cstdio>
using namespace std;
int prod[10000][2],rux[100000],n,g,maxi;
void citire()
{
scanf("%d %d",&n,&g);
for(int i=1;i<=n;i++)
scanf("%d %d",&prod[i][0],&prod[i][1]);
for(int i=1;i<=g;i++)
rux[i]=-1;
}
void afisare()
{
maxi=rux[1];
for(int i=2;i<=g;i++)
if(rux[i]>maxi)
maxi=rux[i];
printf("%d",maxi);
}
void prelucrare()
{
rux[prod[1][0]]=prod[1][1];
for(int i=2;i<=n;i++)
{
for(int j=g-prod[i][0];j>=0;j--)
{
if(prod[i][1]+rux[j]>rux[j+prod[i][0]])
{
if(j+prod[i][0]>-1)
rux[j+prod[i][0]]=prod[i][1]+rux[j];
else
rux[j+prod[i][0]]=prod[i][1];
}
}
}
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
citire();
prelucrare();
afisare();
return 0;
}