Pagini recente » Cod sursa (job #3186362) | Cod sursa (job #734844) | Cod sursa (job #37950) | Cod sursa (job #578192) | Cod sursa (job #1997876)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n, g, Pmax;
int P[5010], G[10010];
//int D[5010][10010];
int a[10010];
int b[10010];
int *aux, *curr, *prv;
ifstream in ("rucsac.in");
ofstream out ("rucsac.out");
int main()
{
int i,j;
curr=a;
prv=b;
in>>n>>g;
for(i=1;i<=n;i++)
in>>G[i]>>P[i];
//dinamica
for(i=1;i<=n;i++)
{
for(j=1;j<=g;++j)
{
//D[i][j]=D[i-1][j];
//if(G[i]<=j)
// D[i][j] = max(D[i][j], D[i - 1][j - G[i]] + P[i]);
curr[j]=prv[j];
if(G[i]<=j)
curr[j] = max(curr[j], prv[j-G[i]] + P[i]);
}
aux =prv;
prv = curr;
curr = aux;
}
//Pmax=D[n][g];
Pmax = prv[g];
out<<Pmax;
return 0;
}