Cod sursa(job #1922916)
| Utilizator | Data | 10 martie 2017 19:36:07 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 65 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.76 kb |
#include<fstream>
#define NMAX 5005
using namespace std;
int n, g, p, gmax, g_max, pmax;
int d[NMAX];
bool u[NMAX];
ifstream _cin("rucsac.in");
ofstream _cout("rucsac.out");
int main()
{
u[0] = 1;
_cin >> n >> g_max;
while(n--)
{
_cin >> g >> p;
for(int i = gmax; i >= 0; i--)
{
if(u[i] == 1)
{
if(i + g <= g_max && d[i + g] < d[i] + p)
{
d[i + g] = d[i] + p;
pmax = max(d[i + g], pmax);
gmax = max(i + g, gmax);
u[i + g] = 1;
}
}
}
}
_cout << pmax;
return 0;
}
