Cod sursa(job #3364561)
| Utilizator | Data | 5 septembrie 2026 15:26:02 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <iostream>
#include <fstream>
using namespace std;
#ifdef LOCAL
#define fin cin
#define fout cout
#else
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
#endif
int dp[10001];
int main() {
int n, g, w, p, rasp=0;
fin >> n >> g;
for (int i=0; i<n; i++) {
fin >> w >> p;
for (int gcur=g; gcur>=w; gcur--) {
dp[gcur] = max(dp[gcur], dp[gcur - w] + p);
}
}
for (int gcur=0; gcur<=g; gcur++)
rasp = max(rasp, dp[gcur]);
fout << rasp;
}
