Ciao, non riesco a trovare un input dove il mio codice fallisca, eppure Olinfo mi dice che quasi metà degli output sono sbagliati.
#include <bits/stdc++.h>
using namespace std;
int main() {
int N;
cin >> N;
vector<int>V(N);
for (int i=0; i<N; i++){
cin >> V[i];
}
vector<int>prova(N+1);
for (int i=1; i<N; i++){
prova[i]=max(0, V[i-1]-V[i]);
}
prova[0]=0;
prova[N]=0;
vector<int>pronza(N);
for (int i=1; i<N-1; i++){
pronza[i]=max(V[i-1]-V[i+1], 0);
}
pronza[0]=0;
pronza[N-1]=0;
vector<int>def(N);
for (int i=0; i<N; i++){
def[i]=-pronza[i]+prova[i]+prova[i+1];
}
int masx=0;
for (int i=0; i<N; i++){
if (def[i]>def[masx]){masx=i;}
}
V.erase(V.begin()+masx);
int ris=0;
for (int i=1; i<N-1; i++){
ris+=max(0, V[i-1]-V[i]);
}
cout << ris;
}
Avreste delle idee?