Cod sursa(job #2795523)
Utilizator | Data | 6 noiembrie 2021 15:36:48 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 65 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
int n,gr;
struct ob{
int g,v;
}v[5001];
int dp[5001];
int main()
{
f >> n >> gr;
for(int i = 1;i<=n;i++)
{
f >> v[i].g >> v[i].v;
}
for(int i = 1;i<=n;i++)
{
int g_curent = v[i].g;
int v_curent = v[i].v;
for(int j = gr;j>=1;j--)
{
if(j-g_curent>=0)
dp[j] = max(dp[j],dp[j-g_curent]+v_curent);
}
}
g << dp[gr];
}