Cod sursa(job #2467962)
| Utilizator | Data | 5 octombrie 2019 11:04:17 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int max(int x, int y) {
if (x > y)
return x;
return y;
}
long long n, g, pd[100], p[100], w[100];
int main() {
cin >> n >> g;;
for (int i = 1; i <= n; ++i)
cin >> w[i] >> p[i];
for (int i = 1; i <= n; ++i)
for (int j = g - w[i]; j >= 0; --j)
pd[j + w[i]] = max(pd[j + w[i]], pd[j] + p[i]);
cout << pd[g];
cin.close();
cout.close();
return 0;
}