Cod sursa(job #2024324)
| Utilizator | Data | 20 septembrie 2017 13:09:43 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 65 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
#define nmax 5005
using namespace std;
fstream f1("rucsac.in", ios::in);
fstream f2("rucsac.out", ios::out);
int n, gmax, gr[nmax], p[nmax], pmax[nmax], rez;
void citire()
{
int i;
f1>>n>>gmax;
for(i=1; i<=n; i++)
f1>>gr[i]>>p[i];
}
void rucsac()
{
int i, g;
for(i=1; i<=n; i++)
for(g=gmax; g>=gr[i]; g--)
if(pmax[g]< pmax[g-gr[i]]+p[i])
{
pmax[g]=pmax[g-gr[i]]+p[i];
if(rez< pmax[g]) rez=pmax[g];
}
f2<<rez;
}
int main()
{
citire();
rucsac();
return 0;
}
