Cod sursa(job #2829098)

Utilizator Vasile_AndreiVasile Andrei Calin Vasile_Andrei Data 8 ianuarie 2022 12:00:11
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n,g,i,j,a[5001],b[5001],c[10001],d[10001],mmax;

int main()
{
    fin>>n>>g;
    for(i=1;i<=n;i++)
        fin>>b[i]>>a[i];

    for(i=1;i<=n;i++){
        for(j=1;j<=g;j++){
            if(c[j]!=0 && j+b[i]<=g)
                d[j+b[i]]=c[j]+a[i];
            else if(j==b[i])d[j]=a[i];
        }
        for(j=1;j<=g;j++)
            c[j]=max(d[j],c[j]);
    }


    for(i=1;i<=g;i++)
        if(c[i]>mmax)mmax=c[i];

    fout<<mmax;

    fin.close();
    fout.close();
    return 0;
}