Pagini recente » Cod sursa (job #22739) | Cod sursa (job #2906766) | Cod sursa (job #2726448) | Cod sursa (job #1921583) | Cod sursa (job #1686552)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int matrice[10005][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=1; j<=m; j++)
{
if(j<obiect[i].greutate)
{
continue;
}
matrice[i][j]=max(matrice[i-1][j],matrice[i-1][j-obiect[i].greutate]+obiect[i].profit);
if(matrice[i][j]>de_afisat)
{
de_afisat=matrice[i][j];
}
}
}
printf("%d\n",de_afisat);
}
void afisare()
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
{
printf("%d ",matrice[i][j]);
if(matrice[i][j]<10)
{
printf(" ");
}
}
printf("\n");
}
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
citire();
creare();
//afisare();
return 0;
}