Cod sursa(job #2795366)
Utilizator | Data | 6 noiembrie 2021 11:54:02 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
#define MAXN 5005
#define MAXG 10005
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int n, gmax, g[MAXN], p[MAXN], dp[MAXG];
int main()
{
int crt = 0, prev = 1;
fin >> n >> gmax;
for(int i = 1; i <= n; i++) fin >> g[i] >> p[i];
dp[g[0]] = p[0];
for(int i = 1; i <= n; i++)
for(int j = gmax; j >= g[i]; j--)
dp[j] = max(dp[j], dp[j-g[i]] + p[i]);
fout << dp[gmax];
return 0;
}