Cod sursa(job #2711635)
| Utilizator | Data | 24 februarie 2021 15:29:48 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("rucsac.in");
ofstream out ("rucsac.out");
int dp[10004];
int main()
{
int n,gmax,maxim=0,w,p;
in>>n>>gmax;
for(int i=1;i<=n;i++)
{
in>>w>>p;
for(int j=gmax;j>=w;j--)
{
if(dp[j-w]>0 && dp[j-w]+p>dp[j])
{
dp[j]=dp[j-w]+p;
maxim=max(maxim,dp[j]);
}
}
if(dp[w]<p)
{
dp[w]=p;
maxim=max(maxim,dp[w]);
}
}
out<<maxim;
return 0;
}
