Cod sursa(job #774422)
Utilizator | Data | 4 august 2012 18:23:39 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int b[100000];
int main()
{
int n,G;
f>>n>>G;
int i,w,p,j,max=0;
f>>w>>p; b[w]=p; max=p;
for(i=1;i<n;i++)
{
f>>w>>p;
for(j=G-w;j>=0;j--)
{
if((b[j]||j==0) && j+w<=G)
{
if(b[j+w])
{
if (b[j]+p>b[j+w])
{
b[j+w]=b[j]+p;
}
else 1;
}
else b[j+w]=b[j]+p;
}
}
//g<<"ceva";
}
for(i=1;i<=G;i++) if(b[i]>max) max=b[i];
g<<max;
}