Pagini recente » Cod sursa (job #531304) | Cod sursa (job #258253) | Cod sursa (job #2957793) | Cod sursa (job #383734) | Cod sursa (job #3246600)
#include <iostream>
#include <fstream>
using namespace std;
int mat[3][10001];
int greutate_obiect[5001];
int pret_obiect[5001];
int main(){
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int nr_obiecte,capacitate,posibil;
cin>>nr_obiecte>>capacitate;
for(int i=1;i<=nr_obiecte;i++){
cin>>greutate_obiect[i]>>pret_obiect[i];
}
for(int i=1;i<=nr_obiecte;i++){
for(int j=1;j<=capacitate;j++){
posibil=j-greutate_obiect[i];
if(posibil>=0){
mat[2][j] = max(mat[1][j],mat[1][posibil]+pret_obiect[i]);
}
else{
mat[2][j] = mat[1][j];
}
}
for(int j=1;j<=capacitate;j++){
swap(mat[2][j],mat[1][j]);
}
}
int maxim = 0;
for(int j=1;j<=capacitate;j++){
if(mat[1][j]>maxim){
maxim = mat[1][j];
}
}
cout<<maxim;
return 0;
}