Pagini recente » Cod sursa (job #956971) | Cod sursa (job #2728566) | Cod sursa (job #1119207) | Cod sursa (job #436427) | Cod sursa (job #2524464)
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int max(int a, int b) { return (a > b)? a : b; }
int knapSack(int W, int wt[], int val[], int n)
{
if (n == 0 || W == 0) return 0;
if (wt[n-1] > W) return knapSack(W, wt, val, n-1);
else return max( val[n-1] + knapSack(W-wt[n-1], wt, val, n-1),
knapSack(W, wt, val, n-1) );
}
int main(){
int N,G;
cin>>N>>G;
int i;
int w[50],p[50];
for(i=0;i<N;i++) {
in>>w[i]>>p[i];}
out<<knapSack(G, w, p, N);
}