Submission #1147614

#TimeUsernameProblemLanguageResultExecution timeMemory
1147614ace5Bitaro's travel (JOI23_travel)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    int a[n];
    for(int i = 0;i < n;++i)
    {
        cin >> a[i];
    }
    int q;
    cin >> q;
    while(q--)
    {
        int x;
        cin >> x;
        ll ans = 0;
        int ri = upper_bound(a,a+n,x)-a;
        int li = ri-1;
        while(li != -1 && ri != n)
        {
            if(x-a[li] > a[ri]-x)
            {
                int ni = upper_bound(a,a+n,2*x-a[li])-a-1;
                ans += abs(a[ni]-x);
                x = a[ni];
                ri = ni+1;
            }
            else
            {
                int ni = lower_bound(a,a+n,2*x-a[ri])-a;
                ans += abs(a[ni]-x);
                x = a[ni];
                li = ni-1;
            }
        }
        cout << ans + a[n-1] - a[0] << "\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...