Cod sursa(job #2616972)

Utilizator darkeagleDaniel Popescu darkeagle Data 20 mai 2020 14:57:56
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;

int max1(int a, int b) { return (a > b) ? a : b; }
int n, W, val[1002], wt[1002];

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 max1(val[n - 1] + knapSack(W - wt[n - 1],wt, val, n - 1),knapSack(W, wt, val, n - 1));
}


int main()
{

    freopen("energii.in", "r", stdin);
    freopen("energii.out", "w", stdout);

    scanf("%d %d",&n,&W);
    for(int i = 0;i < n; i++) {
        scanf("%d %d",&wt[i],&val[i]);
    }
    printf("%d",knapSack(W, wt, val, n));
    return 0;
}