Submission #1015607

#TimeUsernameProblemLanguageResultExecution timeMemory
1015607onbertBitaro's travel (JOI23_travel)C++17
15 / 100
3095 ms13324 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int INF = 1e18;
signed main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int n;
    cin >> n;
    int a[n+2];
    for (int i=1;i<=n;i++) cin >> a[i];
    set<int> s;
    int q;
    cin >> q;
    while (q--) {
        for (int i=1;i<=n;i++) s.insert(a[i]);
        s.insert(-INF); s.insert(INF);
        int x;
        cin >> x;
        int ans = 0, cnt = 0;
        bool right = true;
        while (s.size() > 2) {
            int l = *prev(s.lower_bound(x));
            int r = *s.lower_bound(x);
            if (abs(x-l) <= abs(r-x)) {
                if (right) cnt++;
                ans += abs(x-l);
                x = l;
                s.erase(l);
                right = false;
            } else {
                if (!right) cnt++;
                ans += abs(r-x);
                x = r;
                s.erase(r);
                right = true;
            }
        }
        cout << ans << endl;
        assert(cnt <= 32);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...