Cod sursa(job #2446616)
| Utilizator | Data | 9 august 2019 20:49:22 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
unsigned int dp[2][int(1e4)+1], n, g;
int main()
{
std::fstream fin("rucsac.in", std::ios::in);
std::fstream fout("rucsac.out", std::ios::out);
fin>>n>>g;
for(unsigned int i = 1; i <= n; i++){
unsigned int w, p;
fin>>w>>p;
for(unsigned int j = 1; j < w; j++)
dp[i % 2][j] = dp[(i + 1) % 2][j];
for(unsigned int j = w; j <= g; j++)
dp[i % 2][j] = std::max(dp[(i + 1) % 2][j], p + dp[(i + 1) % 2][j - w]);
}
fout<<std::max(dp[0][g], dp[1][g]);
}
