Cod sursa(job #1603561)
Utilizator | FMI Dinu Radu Raddu | Data | 17 februarie 2016 17:35:18 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int sol=0,pr[5005],gr[5005],dp[10005];
int main()
{ int i,j,n,gtot;
f>>n>>gtot;
for(i=1;i<=n;i++)
f>>gr[i]>>pr[i];
for(i=1;i<=n;i++)
for(j=gtot;j>=gr[i];j--)
if (dp[j-gr[i]]+pr[i]>dp[j]) dp[j]=dp[j-gr[i]]+pr[i];
for(i=0;i<=gtot;i++)
sol=max(sol,dp[i]);
g<<sol;
return 0;
}