Mi sembra che sia corretto almeno gli esempi sono giusti, ma non so cosa mi sono dimenticato di considerare, perchè gli altri testcase non sono corretti.
#include
#include
using namespace std;
int main(){
//ios_base::sync_with_stdio(false);
//cin.tie(NULL);
ifstream in("input.txt");
ofstream out("output.txt");
int n, dl=100000;
in>>n;
int arr[n];
for(int i=0; i<n; ++i){
in>>arr[i];
}
for(int i=0; i<n; ++i){
dl=min(dl, max(arr[n-1]-arr[i], arr[i]-arr[0]));
}
out<<dl<<endl;
return 0;
}
Ciao, il problema dovrebbe stare nel fatto che dl non è un valore abbastanza elevato. Se tu guardi bene i limiti del problema, puoi vedere che P[i] va fino a 1M. Ti consiglio di controllare sempre i limiti, in quanto potresti incorrere in molti altri problemi algoritmicamente corretti, proprio come questo, e magari basta solamente cambiare il tipo di dato che si gestisce (es. da un int a un long long).
La soluzione sarebbe utilizzare per dl un valore più alto o, altrimenti, come dovresti fare di solito, includere l’header climits
e inizializzare dl a INT_MAX
.
Spero di essere stato d’aiuto.