Cod sursa(job #2239138)
| Utilizator | Data | 9 septembrie 2018 16:00:34 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include <fstream>
#define maxn 5001
#define maxg 10001
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int w[maxn], p[maxn], sol;
int optim[maxg], n, G;
int main()
{
int i, j;
int n, G;
f>>n>>G;
for(i = 1; i <= n; i++)
f>>w[i]>>p[i];
optim[0]=0;
sol = 0;
for(i = 1; i <= n; ++i)
for(j = G-w[i]; j>=0; --j)
{
if(optim[j+w[i]]<optim[j]+p[i])
{
optim[j+w[i]]=optim[j]+p[i];
if(optim[j+w[i]]>sol)
sol=optim[j+w[i]];
}
}
g<<sol;
return 0;
}
