Cod sursa(job #2570896)

Utilizator OvidRata Ovidiu Ovid Data 4 martie 2020 19:53:24
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in"); ofstream fout("rucsac.out");





int N, G, w[5010], p[5010];
long long c[5010][10010];

int main(){
fin>>N>>G;

for(int i=1; i<=N; i++){
    fin>>w[i]>>p[i];
}



for(int i=1; i<=N; i++){

 for(int g=w[i]; g<=G; g++){
    c[i][g]=max(c[i-1][g], c[i-1][max(0, g-w[i])]+p[i] );
 }

 if( w[i]>G ){for(int g=0; g<=G; g++){c[i][g]=c[i-1][g]; } }


}

fout<<c[N][G];


return 0;
}