Cod sursa(job #1569090)

Utilizator starlingIon Popa starling Data 14 ianuarie 2016 22:34:11
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <bits/stdc++.h>

using namespace std;
int w[6000],p[6000],dp[2][10009];
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int main()
{
    int g,n;
    in>>n>>g;
    for(int i=1;i<=n;i++)
        in>>w[i]>>p[i];
    int act=1;
    int last=0;
     for(int i=1;i<=n;i++)
        {   swap(act,last);
            for(int s=0;s<=g;s++)
         {   dp[act][s]=dp[last][s];
             if(s-w[i]>=0)
             dp[act][s]=max(dp[act][s],dp[last][s-w[i]]+p[i]);
         }
        }
    int ans=-1;
    for(int i=0;i<=g;i++)
        ans=max(ans,dp[act][i]);
    out<<ans;

    return 0;
}