Cod sursa(job #2276601)
Utilizator | Temes George Semetg | Data | 4 noiembrie 2018 22:07:13 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
#include <iostream>
#include <cstdio>
using namespace std;
ifstream in { "rucsac.in" };
ofstream out { "rucsac.out" };
#define G_MAX 10005
int G;
int rucsac[G_MAX];
void dp(int g, int c) {
for (int i { G }; i >= g; --i)
if (rucsac[i - g] + c > rucsac[i])
rucsac[i] = rucsac[i - g] + c;
}
int main() {
int n;
in >> n >> G;
while (n--) {
int g, c;
in >> g >> c;
dp(g, c);
}
out << rucsac[G];
}