Cod sursa(job #1896501)
Utilizator | pruna stefan stefanvd | Data | 28 februarie 2017 18:46:49 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int gr[5001],p[5001],n,gi,a[10001],i,j,b[10001],k;
int main()
{
f>>n>>gi;
for(i=1;i<=n;i++)
f>>gr[i]>>p[i];
for(i=1;i<=n;i++)
{
for(j=1;j<=gi;j++)
if(j-gr[i]>=0)
b[j]=max(a[j-gr[i]]+p[i],a[j]);
else
b[j]=a[j];
for(k=1;k<=gi;k++)
a[k]=b[k];
}
g<<b[gi];
return 0;
}