Cod sursa(job #2982150)
Utilizator | Data | 19 februarie 2023 17:09:23 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include <bits/stdc++.h>
using namespace std;
string np = "rucsac";
ifstream f(np + ".in");
ofstream g(np + ".out");
// #define f cin
// #define g cout
int n, gmax, rez, v[10003];
bool viz[10003];
int main()
{
f >> n >> gmax;
viz[0] = 1;
for (int gr, pr; n; n--)
{
f >> gr >> pr;
for (int i = gmax - gr; i >= 0; i--)
if (viz[i])
{
if (!viz[i + gr])
viz[i + gr] = 1, v[i + gr] = v[i] + pr;
else
v[i + gr] = max(v[i + gr], v[i] + pr);
rez = max(rez, v[i + gr]);
}
}
g << rez;
return 0;
}