Cod sursa(job #1959605)

Utilizator igroitaGroita Igor igroita Data 9 aprilie 2017 18:06:45
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin("rucsac.in");
ofstream cout("rucsac.out");

int n,g, w[5004], p[5004];
long long dp[2][10004];


int main()
{
    cin>>n>>g;

for(int j=1; j<=n; ++j){
    cin>>w[j]>>p[j];
        for(int i=1; i<=g; ++i){
                    if(w[j]<=i) dp[j%2][i] = max(max(dp[j%2][i-1],dp[(j-1)%2][i-w[j]]+p[j]),dp[(j-1)%2][i] );

                    else dp[j%2][i] = max(dp[(j-1)%2][i],dp[j%2][i-1]);

        }

}
    cout<<dp[n%2][g];


    return 0;
}