Cod sursa(job #1897051)
| Utilizator | Data | 1 martie 2017 09:21:13 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n,gm,g,i,j,v;
long long maxim;
long long dp[3][20001];
int main()
{
fin>>n>>gm;
for(i=1;i<=n;i++)
{
fin>>g>>v;
for(j=1;j<g;j++)
dp[i%2][j]=dp[1-(i%2)][j];
for(j=g;j<=gm;j++)
dp[i%2][j]=max(dp[1-(i%2)][j-g]+v,dp[1-(i%2)][j]);
}
maxim=0;
for(j=1;j<=gm;j++)
maxim=max(maxim,dp[n%2][j]);
fout<<maxim;
return 0;
}
