Pagini recente » Cod sursa (job #2031948) | Cod sursa (job #1781286) | Cod sursa (job #386521) | Cod sursa (job #412871) | Cod sursa (job #1818529)
#include <fstream>
#define nmax 10001
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N,G;
struct obiect
{
int wi,pi;
};
obiect a[nmax];
int c[nmax][nmax];
void Citire()
{
int i;
fin>>N>>G;
for(i=1;i<=N;i++)
fin>>a[i].wi>>a[i].pi;
}
void Dinamica()
{
int i,j;
for(i=0;i<=G;i++)
c[0][i]=0;
for(j=0;j<=N;j++)
c[j][0]=0;
for(i=1;i<=N;i++)
for(j=1;j<=G;j++)
if(a[i].wi>j) c[i][j]=c[i-1][j];
else c[i][j]=max(c[i-1][j],a[i].pi+c[i-1][j-a[i].wi]);
fout<<c[N][G];
}
int main()
{
Citire();
Dinamica();
fin.close();
fout.close();
return 0;
}