#include #include #include #include #include #include #include #include #include using namespace std; #define mset(a,x) memset(a,x,sizeof(a)) #define For(i,l,r) for(int i=(l);i<=(r);i++) #define Down(i,r,l) for(int i=(r);i>=(l);i--) #define INF 0x7fffffff int n; long long w[100005],l,r,ans[100005],Max; pairv[100005]; void solve() { For(i,1,n-1) v[i].first=w[i+1]-w[i],v[i].second=w[i+1]+w[i]; sort(v+1,v+n); v[0].first=v[0].second=0; long long tmp=0; Max=1; ans[0]=0; For(i,1,n-1) { if(v[i].first>=Max) { tmp+=v[i].first-Max+1; } Max=max(Max,v[i].second); ans[i]=tmp; } } long long work(long long x) { int l=1,r=n-1; while(l>1; if(v[mid].first=x) { if(l==1) return x; if(x>=v[l-1].second) return ans[l]-v[l].first+x; else return ans[l-1]; } if(x