Pagini recente » Cod sursa (job #1546308) | Cod sursa (job #2150296) | Cod sursa (job #2230709) | Cod sursa (job #2913505) | Cod sursa (job #1238103)
#include <cstdio>
#define BOZZ 5001
using namespace std;
struct LOL
{
int profit,greutate;
}obiect[BOZZ];
int n,g,linie_de_rezolvare[10001],n1=1;
void citire()
{
scanf("%d %d",&n,&g);
for (int i=1;i<=n;i++)
{
scanf("%d %d",&obiect[i].greutate,&obiect[i].profit);
}
}
void rezolvare()
{
while (n1<=n)
{
for (int i=g;i>=1;i--)
{
if (linie_de_rezolvare[i-obiect[n1].greutate]!=0&&i>obiect[n1].greutate)
if (linie_de_rezolvare[i]<obiect[n1].profit+linie_de_rezolvare[i-obiect[n1].greutate])
linie_de_rezolvare[i]=obiect[n1].profit+linie_de_rezolvare[i-obiect[n1].greutate];
if (i-obiect[n1].greutate==0&&linie_de_rezolvare[i]<obiect[n1].profit)
linie_de_rezolvare[i]=obiect[n1].profit;
}
n1++;
}
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
citire();
rezolvare();
int max=0;
for (int i=1;i<=g;i++) if (max<linie_de_rezolvare[i]) max=linie_de_rezolvare[i];
printf("%d",max);
}