Cod sursa(job #3149256)
| Utilizator | Data | 6 septembrie 2023 20:09:13 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N, G, W[5005], P[5005];
int d[2][10005];
void citire() {
fin >> N >> G;
for (int i=1; i<=N; ++i) {
fin >> W[i] >> P[i];
}
}
int main()
{
citire();
for (int i=1; i<=N; ++i) {
for (int j=W[i]; j<=G; ++j) {
d[1][j]=max(P[i]+d[0][j-W[i]], d[0][j]);
}
for (int j=0; j<=G; ++j) {
d[0][j]=d[1][j];
}
}
fout << d[1][G];
return 0;
}
