Cod sursa(job #2645773)

Utilizator vladdobro07vladdd vladdobro07 Data 29 august 2020 16:01:05
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
const int nmax=10001;
int d[nmax+1];
int main() {
        int n,G,i,j,last,g,p,maxp=0;
        cin>>n>>G;
        for(i=1;i<=G;i++) d[i]=-1;
        last=0;
        for(i=1;i<=n;i++){
                cin>>g>>p;
                for(j=last;j>=0;j--){
                        if(j+g>G) continue;
                        if(d[j]!=-1){
                                if(d[j+g]<(d[j]+p)){
                                        d[j+g]=d[j]+p;
                                        if(j+g>last) last=j+g;
                                }
                        }
                }
        } for(int i=1;i<=G;i++)maxp=max(maxp,d[i]);
        cout<<maxp;
        return 0;
}