Cod sursa(job #2951747)
| Utilizator | Data | 7 decembrie 2022 10:47:13 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, gr[5001], c[5001], castig[10001], maxim = -1, g;
int main()
{
int i, j;
fin >> n >> g;
for (i = 1; i <= n; i++)
fin >> gr[i] >> c[i];
for (i = 1; i <= n; i++)
for (j = g - gr[i]; j >= 0; j--) {
if (castig[j + gr[i]] < castig[j] + c[i]) {
castig[j + gr[i]] = castig[j] + c[i];
if (castig[j + gr[i]] > maxim)
maxim = castig[j + gr[i]];
}
}
fout << maxim;
return 0;
}
