제출 #1144719

#제출 시각아이디문제언어결과실행 시간메모리
1144719sohamsen15Room Temperature (JOI24_ho_t1)C++20
35 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; using pll = pair<ll, ll>; using pdd = pair<double, double>; const int INF = 2e9; const ll INFL = 2e18; const ll MOD = 1e9 + 7; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll n, t; cin >> n >> t; vector<ll> a(n); for (auto &x: a) cin >> x; for (ll i = 0; i < n; i++) a[i] %= t; if (n == 2) { cout << min(abs(a[0] - a[1]) % t, t - (abs(a[0] - a[1]) % t)) << "\n"; return 0; } auto f = [&](ll x) { ll ret = 0; for (ll i = 0; i < n; i++) ret = max(min((a[i] + x) % t, t - ((a[i] + x) % t)), ret); return ret; }; auto g = [&](ll y) { ll mine = t; for (ll i = 0; i < t; i++) mine = min(mine, f(i)); return mine <= y; }; if (g(0)) { cout << 0 << "\n"; return 0; } ll l = 1, r = t - 1; while (l <= r) { ll mid = (l + r) / 2; if (g(mid)) { if (!g(mid - 1)) { cout << mid << "\n"; break; } else { r = mid - 1; } } else l = mid + 1; } }
#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...