Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector <int> pizza;
- vector <vector <int> > memo;
- int massimo (int a, int b) {
- if (a>b) return a;
- return b;
- }
- int mangia(int a, int b, int somma) {
- if (a==b) return pizza[a];
- if (a>b) return 0;
- 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]));
- return memo[a][b];
- }
- int contentezza (int N, int V[]) {
- int sum=0;
- for (int i=0; i<N; i++) {
- pizza.push_back(V[i]);
- sum+=V[i];
- }
- memo.resize(N);
- for (int i=0; i<N; i++) for (int j=0; j<N; j++) memo[i].push_back(-1);
- return mangia(0, N-1, sum);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement