Submission #1191612

#TimeUsernameProblemLanguageResultExecution timeMemory
1191612The_SamuraiMeasures (CEOI22_measures)C++20
24 / 100
1597 ms5080 KiB
// I stand with PALESTINE




// #pragma GCC optimize("Ofast,O3")
// #pragma GCC target("avx,avx2")
#include "bits/stdc++.h"

using namespace std;
using ll = long long;
using ld = double;
const ld eps = 1e-6;

void solve() {
    int n, m, d;
    cin >> n >> m >> d;
    vector<ll> a(n), b(m);
    for (int i = 0; i < n; i++) cin >> a[i];
    for (int i = 0; i < m; i++) cin >> b[i];

    auto v = a;
    for (ll &x: v) x *= 2;
    d *= 2;

    auto f = [&]() -> ll {
        // for (ll &x: v) cout << x << ' ';
        // cout << endl;
        ll lx = 0, rx = 1e16, best = -1;
        while (lx <= rx) {
            ll mid = (lx + rx) >> 1;
            ll l = -1e18, r = 1e18;
            for (int i = 0; i < v.size(); i++) {
                l = max(l, v[i] - mid);
                r = v[i] + mid;
                if (l > r) break;
                l += d, r += 1e18;
            }
            if (l <= r) {
                best = mid;
                rx = mid - 1;
            } else {
                lx = mid + 1;
            }
        }
        return best;
    };

    for (int i = 0; i < m; i++) {
        v.emplace_back(b[i] * 2);
        sort(v.begin(), v.end());
        ll ans = f();
        cout << ans / 2;
        if (ans % 2) cout << ".5";
        cout << ' ';
    }
}

int main() {
    cin.tie(0)->sync_with_stdio(false);

    int queries = 1;
#ifdef sunnatov
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    cin >> queries;
#else
    // cin >> queries;
#endif

    for (int test_case = 1; test_case <= queries; test_case++) {
#ifdef sunnatov
        cout << "Test case: " << test_case << endl;
#endif
        solve();
        cout << '\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...