Advertisement
Guest User

Untitled

a guest
May 11th, 2018
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector <int> pizza;
  4. vector <vector <int> > memo;
  5.  
  6. int massimo (int a, int b) {
  7.     if (a>b) return a;
  8.     return b;
  9. }
  10.  
  11.  
  12. int mangia(int a, int b, int somma) {
  13.     if (a==b) return pizza[a];
  14.     if (a>b) return 0;
  15.    
  16.     if (memo[a][b]==-1) memo[a][b]=massimo(somma-mangia(a+1, b, somma-pizza[a]), somma-mangia(a, b-1, somma-pizza[b]));
  17.     return memo[a][b];
  18. }
  19.  
  20.  
  21.  
  22. int contentezza (int N, int V[]) {
  23.     int sum=0;
  24.     for (int i=0; i<N; i++) {
  25.         pizza.push_back(V[i]);
  26.         sum+=V[i];
  27.     }
  28.     memo.resize(N);
  29.     for (int i=0; i<N; i++) for (int j=0; j<N; j++) memo[i].push_back(-1);
  30.     return mangia(0, N-1, sum);
  31.    
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement