Cod sursa(job #2331517)

Utilizator mirelPmirel p mirelP Data 29 ianuarie 2019 17:38:30
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

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

int f[10005],x,y,n,m,i,j,k,smax,last=0;

int main()
{
    fin>>n>>m;
    for(i=1;i<=m;i++)
    f[i]=-1;
    f[0]=0;
    for(i=1;i<=n;i++)
    {
        fin>>x>>y;
        
        for(j=last;j>=0;j--)
        {
            if(j+x>m)
                continue;
            if(f[j]!=-1)
            {
                if(f[j+x]<f[j]+y)
                {
                    f[j+x]=f[j]+y;
                }
                if(j+x>last)
                    last=j+x;
            }
        }
        
    }
    for(i=m;i>=1;i--)
        {
          
            if(f[i]>k)
        k=f[i];
        }
    fout<<k;
        
    return 0;
}