Pagini recente » Cod sursa (job #1120324) | Cod sursa (job #1470317) | Cod sursa (job #2418238) | Cod sursa (job #354635) | Cod sursa (job #1686802)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int vec[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 || vec[j]!=0)
{
if(j+obiect[i].greutate<=m && vec[j+obiect[i].greutate]<vec[j]+obiect[i].profit)
{
vec[j+obiect[i].greutate]=vec[j]+obiect[i].profit;
}
}
}
}
for(int i=1; i<=m; i++)
{
if(vec[i]>de_afisat)
{
de_afisat=vec[i];
}
}
printf("%d\n",de_afisat);
}
void afisare()
{
for(int i=1; i<=m; i++)
{
printf("%d",vec[i]);
}
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
citire();
creare();
//afisare();
return 0;
}