non capisco come poter ottimizzare il mio codice per farlo rientrare nel tempo massimo, infatti ottengo solo 35/100
condivido il codice:
#include <string>
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
int solve(int N, int P[], int m, int p) {
if (m == N) {
return 0;
} else {
if (P[m] > p ) {
return solve(N, P, m+1, p);
} else {
return max(solve(N, P, m+1, p), solve(N, P, m+1, P[m])+1);
}
}
}
int main() {
// se preferisci leggere e scrivere da file
// ti basta decommentare le seguenti due righe:
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int N;
cin >> N;
int P[N] = {};
for (int t = 0; t < N; t++) {
cin >> P[t];
}
cout << solve(N, P, 0, 1000000) << endl;
}