Submission #1132777

#TimeUsernameProblemLanguageResultExecution timeMemory
1132777not_amirRoom Temperature (JOI24_ho_t1)C++20
35 / 100
0 ms328 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    ll n, t;
    cin >> n >> t;
    vector<ll> a(n);
    for (ll& i : a) cin >> i;
    ll l = 0, r = t, ans = t;
    while (l <= r) {
        ll m = (l + r) / 2;
        ll tls = 0, trs = t - 1, tle = 0, tre = t - 1;
        ll tl = 0, tr = t - 1;
        for (int x : a) {
            tle = max(tle, (x - m + t) % t);
            if (x % t - m >= 0)
                tre = min(tre, x % t + m);
            if (x % t + m <= t - 1)
                tls = max(tls, x % t - m);
            trs = min(tr, (x + m) % t);
            tl = max(tl, x % t - m);
            tr = min(tr, x % t + m);
        }
        if (tls <= trs || tle <= tre || tl <= tr)
            r = m - 1, ans = m;
        else
            l = m + 1;
    }
    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...