Cod sursa(job #2767816)
Utilizator | Data | 7 august 2021 21:44:24 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, g, w, p;
int dp[2][10005];
int main()
{
bool var = 1;
fin >> n >> g;
for(int i = 1; i <= n; i++)
{
fin >> w >> p;
for(int j = 0; j <= g; j++)
{
dp[var][j] = dp[1-var][j];
if(j >= w)
{
dp[var][j] = max(dp[var][j], dp[1-var][j-w] + p);
}
}
var = 1 - var;
}
var = 1 - var;
fout << dp[var][g];
return 0;
}