Cod sursa(job #2119680)
| Utilizator | Data | 1 februarie 2018 15:24:01 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, i, j, gr;
int v[10002], g[5002], val[5002], maxim;
int main() {
fin>>n>>gr;
for (i=1;i<=gr;i++){
v[i]=-1;
}
v[0]=0;
for (i=1;i<=n;i++){
fin>>g[i]>>val[i];
for(j=gr; j>=0; j--){
if(v[j]>=0 && j+g[i]<=gr){
if(v[j+g[i]]<v[j]+val[i]){
v[j+g[i]]=v[j]+val[i];
if(v[j+g[i]]>maxim)
maxim=v[j+g[i]];
}
}
}
}
fout<<maxim;
}
