Cod sursa(job #3280761)
| Utilizator | Data | 27 februarie 2025 15:10:39 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 65 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
const int NMAX=5001;
int d[2][NMAX];
struct ruc
{
int w, p;
}v[NMAX];
int main()
{
int n, G;
f >> n >> G;
for(int i=1; i<=n; i++)
{
f >> v[i].w >> v[i].p;
}
for(int i=1; i<=n; i++)
for(int j=0; j<=G; j++)
{
if(j>=v[i].w)
{
d[i%2][j]=max(d[(i-1)%2][j], d[(i-1)%2][j-v[i].w]+v[i].p);
}else
d[i%2][j]=d[(i-1)%2][j];
}
g << d[n%2][G];
}
