Cod sursa(job #3343996)
| Utilizator | Data | 28 februarie 2026 22:25:13 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
#include <algorithm>
using namespace std;
int main() {
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N, G;
fin >> N >> G;
static long long dp[10001]; // G <= 10000, initial 0
for (int i = 1; i <= N; i++) {
int w, p;
fin >> w >> p;
if (w > G) continue; // nu incape niciodata
for (int g = G; g >= w; g--) {
dp[g] = max(dp[g], dp[g - w] + (long long)p);
}
}
fout << dp[G];
return 0;
}
