Pagini recente » Cod sursa (job #1903751) | Cod sursa (job #43792) | Cod sursa (job #832080) | Cod sursa (job #738288) | Cod sursa (job #2972389)
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
const int N = 10001;
int n , gmax;
long long knapsack[N / 2][N];
struct valori{
int G , P;
};
valori v[N + 1];
int main(){
in >> n >> gmax;
for(int i = 1 ; i <= n ; i++){
in >> v[i].G >> v[i].P;
}
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= gmax ; j++){
if(v[i].G <= j){
knapsack[i][j] = max(knapsack[i - 1][j] , v[i].P + knapsack[i - 1][j - v[i].G]);
}
else{
knapsack[i][j] = knapsack[i - 1][j];
}
}
}
out << knapsack[n][gmax];
}