#include using namespace std; #define si(a) (long)a.size() #define fi first #define se second #define all(x) x.begin(),x.end() #define rep(i,n) for(int i=0;i<(int)(n);++i) templatebool chmin(S&a,F b){return bbool chmax(S&a,F b){return b>a?(a=b,1):0;} bool _=(ios::sync_with_stdio(0),cin.tie(0),cout<>N>>L>>K; vector A(N+2); rep(i,N)cin>>A[i+1]; A[0]=0; A[N+1]=L; int ok=0; int ng=1e9+10; while(ng-ok>1){ int m=(ok+ng)/2; vector L(N); { int l=0; int mi=1e9; for(int r=1;r<=N;r++){ L[r-1]=mi; while(A[r]-A[l+1]>=m)l++; if(A[r]-A[l]>=m){ chmin(mi, r-l+(l==0)); chmin(L[r-1], r-l+(l==0)+1); } } } vector R(N); { int r=N+1; int mi=1e9; for(int l=N;l>=1;l--){ R[l-1]=mi; while(A[r-1]-A[l]>=m)r--; if(A[r]-A[l]>=m){ chmin(mi,r-l+(r==N-1)); chmin(R[l-1], r-l+(r==N-1)+1); } } } // rep(i,N){ // if(m==5){ // cout<