Pagini recente » Cod sursa (job #1464616) | Cod sursa (job #47406) | Cod sursa (job #2296315) | Cod sursa (job #2513732) | Cod sursa (job #1686693)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int matrice[10005],n,m;
struct elem
{
int profit,greutate;
}obiect[10005];
void citire()
{
scanf("%d %d\n",&n,&m);
for(int i=1; i<=n; i++)
{
scanf("%d %d\n",&obiect[i].greutate,&obiect[i].profit);
}
}
void creare()
{
int de_afisat=0;
for(int i=1; i<=n; i++)
{
for(int j=m; j>=0; j--)
{
if(j==0 || matrice[j]!=0)
{
if(matrice[j+obiect[i].greutate]<matrice[j]+obiect[i].profit && j+obiect[i].greutate<=m)
{
matrice[j+obiect[i].greutate]=matrice[j]+obiect[i].profit;
}
}
}
}
for(int i=1; i<=m; i++)
{
if(matrice[i]>de_afisat)
{
de_afisat=matrice[i];
}
}
printf("%d\n",de_afisat);
}
void afisare()
{
for(int i=1; i<=m; i++)
{
printf("%d",matrice[i]);
}
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
citire();
creare();
//afisare();
return 0;
}