Cod sursa(job #2158521)

Utilizator cristian5379Sasu Cristian cristian5379 Data 10 martie 2018 13:40:38
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");

int g[1001],v[1001],n,gmax,dp[10001],i,j;
int main()
{
    fin>>gmax>> n;
    for(i=1;i<=n;i++) cin>>g[i]>>v[i];
    for(i=1;i<=n;i++)
    {
        for(j=gmax-g[i];j>=1;j--)
            if(dp[j]!=0 && dp[j]+v[i]>dp[j+g[i]])
                dp[j+g[i]] = dp[j]+v[i];
        if(dp[g[i]]<v[i])
            dp[g[i]]=v[i];
    }
    int maxx = 1;
    for(i=1;i<=gmax;i++)
    {
        if(dp[i]>maxx)
            maxx = dp[i];
    }
    fout<<maxx;
    return 0;
}