Cod sursa(job #1327913)
Utilizator | Data | 27 ianuarie 2015 15:32:59 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int N,G,i,j,sol;
int W[5001],P[5001],Optim[10001];
int main()
{
f>>N>>G;
for(i=1;i<=N;++i) f>>W[i]>>P[i];
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<<'\n';
return 0;
}