Cod sursa(job #2279866)
Utilizator | Data | 10 noiembrie 2018 10:00:18 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include <iostream>
#include <fstream>
using namespace std;
int v[10005],p[5005],g[5005];
int n,gmax;
ifstream f1("rucsac.in");
ofstream f2("rucsac.out");
int main() {
f1>>n>>gmax;
for(int i=1;i<=n;i++){
f1>>g[i]>>p[i];
}
for(int i=0;i<=gmax;i++){
if(g[1]<=i)
v[i]=p[1];
}
for(int i=2;i<=n;i++){
for(int j=gmax;j>=0;j--){
if(g[i]<=j){
if(p[i]+v[j-g[i]]>v[j])
v[j]=p[i]+v[j-g[i]];
}
}
}
f2<<v[gmax];
return 0;
}