This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
using I=int;
using Lli=long long int;
const I N=200000;
const Lli MAX=1e18+1;
const Lli MIN=-MAX;
Lli x_arr[N];
I main(){
  cin.tie(0)->sync_with_stdio(0);
  I n;cin>>n;
  for(I i=0;i<n;i++)cin>>x_arr[i];
  I q;cin>>q;
  while(q--){
    I s;cin>>s;
    auto geq=[&](Lli x){
      return lower_bound(x_arr,x_arr+n,x)-x_arr;
    };
    auto gtn=[&](Lli x){
      return upper_bound(x_arr,x_arr+n,x)-x_arr;
    };
    auto ltn=[&](Lli x){
      return geq(x)-1;
    };
    auto leq=[&](Lli x){
      return gtn(x)-1;
    };
    auto val=[&](I i){
      if(i==-1){
        return MIN;
      }
      if(i==n){
        return MAX;
      }
      return x_arr[i];
    };
    Lli res=0,l1=s,r1=s,t=s;
    while(1){
      Lli l2=val(ltn(l1)),r2=val(gtn(r1));
      if(l2==MIN&&r2==MAX){
        break;
      }
      if(t==l1){
        if(l1-l2<=r2-l1){
          I u=val(geq(l1-(r2-l1)));
          res+=t-u;
          t=u;
          l1=u;
        }else{
          I u=val(ltn(l1+(l1-l2)));
          res+=u-t;
          t=u;
          r1=u;
        }
      }else{
        if(r1-l2<=r2-r1){
          I u=val(geq(r1-(r2-r1)));
          res+=t-u;
          t=u;
          l1=u;
        }else{
          I u=val(ltn(r1+(r1-l2)));
          res+=u-t;
          t=u;
          r1=u;
        }
      }
    }
    printf("%lli\n",res);
  }
}
Compilation message (stderr)
travel.cpp: In function 'I main()':
travel.cpp:25:10: warning: variable 'leq' set but not used [-Wunused-but-set-variable]
   25 |     auto leq=[&](Lli x){
      |          ^~~| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |