Cod sursa(job #2453480)
Utilizator | Data | 3 septembrie 2019 21:28:58 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int dp[10005], n, G, w[5005], p[5005];
int maxim(int a, int b) {
if(a > b)
return a;
return b;
}
int main() {
f >> n >> G;
for(int i = 1; i <= n; i++)
f >> w[i] >> p[i];
for(int i = 1; i <= n; i++)
for(int j = G-w[i]; j >= 0; j--)
dp[j+w[i]] = maxim(dp[j+w[i]], dp[j]+p[i]);
g << dp[G];
}