Submission #1148094

#TimeUsernameProblemLanguageResultExecution timeMemory
1148094OAleksaRoom Temperature (JOI24_ho_t1)C++20
50 / 100
2 ms328 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int tt = 1;
    //cin >> tt;
    while (tt--) {
      int n, t;
      cin >> n >> t;
      vector<int> a(n);
      for (int i = 0;i < n;i++)
        cin >> a[i];
      sort(a.begin(), a.end());
      auto Try = [&](int x) {
        int res = 0;
        for (int i = 0;i < n;i++) {
          if (x >= a[i])
            res = max(res, x - a[i]);
          else {
            int k1 = a[i] - ((a[i] - x) / t * t);
            int k2 = a[i] - ((a[i] - x + t - 1) / t * t);
            res = max(res, min(abs(x - k1), abs(x - k2)));
          }
        }
        return res;
      };
      int ans = 1e18, l = 0, r = 1e18;
      while (l <= r) {
        int mid = (l + r) / 2;
        if (min(Try(a[0] - mid), Try(a[0] + mid)) <= mid) {
          ans = mid;
          r = mid - 1;
        }
        else
          l = mid + 1;
      }
      cout << ans << '\n';
    }
    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...
#Verdict Execution timeMemoryGrader output
Fetching results...