제출 #997432

#제출 시각아이디문제언어결과실행 시간메모리
997432crafticatMeasures (CEOI22_measures)C++17
0 / 100
1550 ms852 KiB
#include <bits/stdc++.h>

using namespace std;
constexpr int inf = 1e9;
constexpr int epsilon = 1;
int d;

bool ok(vector<int> &arr, int move) {
    int lastPos = -inf;
    for (auto x : arr) {
        int req = (lastPos + d) - x;
        req = max(req, -move);
        if (req > move) return false;
        lastPos = x + req;
    }
    return true;
}

double solve(vector<int> arr) {
    std::sort(arr.begin(), arr.end());

    int l = 0, r = inf;
    while (r - l > 0) {
        int mid = l + (r - l) / 2;
        if (ok(arr,mid)) {
            r = mid;
        } else {
            l = mid + epsilon;
        }
    }
    return l;
}

int main() {
    int n, m; cin >> n >> m >> d;

    vector<int> p;
    for (int i = 0; i < n; ++i) {
        int x; cin >> x;
        x *= 2;
        p.push_back(x);
    }

    d*=2;

    for (int i = 0; i < m; ++i) {
        int x; cin >> x;
        x *= 2;
        p.push_back(x);
        int ans = solve(p);
        cout << ans / 2 << (ans % 2 ? ".5" : "")  << " ";
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...