Cod sursa(job #2711301)
Utilizator | Data | 23 februarie 2021 21:35:38 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
long long dp[10004];
int main()
{
long long n,g,w,p,i,j,maxi=0;
in>>n>>g;
for(i=0;i<n;i++){
in>>w>>p;
for(j=g;j>=w;j--){
if(dp[j-w]>0 && dp[j-w]+p>dp[j]){
dp[j]=dp[j-w]+p;
if(dp[j]>maxi){
maxi=dp[j];
}
}
}
if(dp[w]<p){
dp[w]=p;
if(dp[w]>maxi){
maxi=dp[w];
}
}
}
out<<maxi;
return 0;
}