Pagini recente » Cod sursa (job #3170570) | Cod sursa (job #2257239) | Cod sursa (job #1965734) | Cod sursa (job #2077127) | Cod sursa (job #2124979)
//Metoda imcompleta!!!!!
//knapsack problem
#include <iostream>
#include <fstream>
using namespace std;
//function for defining the maximum from 2 numbers;
int max (int a, int b){
return (a>b)?a:b;
}
int knapsack(int W, int wt[], int n, int val[]){
//Invalid imput
if (n==0 || W==0)
return 0;
if (wt[n-1]>W){
return knapsack(W, wt, n-1, val);
}
else
return max(val[n-1]+knapsack(W-wt[n-1], wt, n-1, val),
knapsack (W, val, n-1, val));
}
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int main(){
int W,n;
fin>>n>>W;
int val[n];
int wt[n];
for (int i=0; i<n; i++){
fin>>wt[i]>>val[i];
}
fout<<knapsack (W, wt, n, val);
fin.close();
fout.close();
return 0;
}