Cod sursa(job #2433647)

Utilizator Alex_DiaconuDiaconu Alexandru Alex_Diaconu Data 28 iunie 2019 14:23:18
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

const int nmax=1001;
const int smax=5001;
int v[nmax+1],c[nmax+1],d[smax+1];

ifstream ci ("rucsacul.in");
ofstream co ("rucsacul.out");

int main ()
{
    int n,s;
    ci >> n >> s;
    for (int i=1; i<=n; i++)
    {
        ci >> v[i];
        ci >> c[i];
    }
    for (int i=1; i<=s; i++)
    {
        d[i]=-1;
    }
    for (int i=1; i<=n; i++)
    {
        for (int j=s; j>=0; j--)
        {
            if (d[j]>=0 && j+v[i]<=s && c[i]+d[j]>d[j+v[i]])
            {
                d[j+v[i]]=c[i]+d[j];
            }
        }
    }
    int max=0;
    for (int i=s; i>0; i--)
    {
        if (d[i]>max)
            max=d[i];
    }
    co << max;
    return 0;
}