Cod sursa(job #3361212)
| Utilizator | Data | 21 iulie 2026 18:39:04 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 50 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <iostream>
#include <fstream>
using namespace std;
int mat[5003][10003];
int main(){
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, kg;
fin>>n>>kg;
int weight[5002], val[5002];
for (int i=1; i<=n; ++i)
fin>>weight[i]>>val[i];
for(int i=1; i<=n; i++){
for(int w=1; w<=kg; w++){
mat[i][w]=max(mat[i-1][w], mat[i][w-1]);
if(w >= weight[i])
mat[i][w]=max(val[i]+mat[i-1][w-weight[i]], mat[i][w]);
}
}
fout<<mat[n][kg];
}
