Cod sursa(job #796544)
Utilizator | Data | 11 octombrie 2012 19:43:08 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int N,G,W[5001],P[5001],Optim[10001],sol;
int main()
{
int i,j;
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(sol<Optim[j+W[i]])
sol=Optim[j+W[i]];
}
g<<sol;
return 0;
}