Cod sursa(job #774420)
Utilizator | Data | 4 august 2012 18:16:51 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 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+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;
if(max<b[j+w]) max=b[j+w];
}
}
//g<<"ceva";
}
g<<max;
}