Submission #1245360

#TimeUsernameProblemLanguageResultExecution timeMemory
1245360RecursiveCoRoom Temperature (JOI24_ho_t1)C++20
50 / 100
1 ms328 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define in(i) cin >> i
#define out(o) cout << o

// vector<int>

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int N, T;
    in(N);
    in(T);
    vector<int> A(N);
    for (int i = 0; i < N; ++i) in(A[i]);
    for (int i = 0; i < N; ++i) A[i] %= T;
    sort(A.begin(), A.end());
    int ans = 0;
    for (int i = 0; i < N; ++i) {
        int up = (A[i] + T / 2) % T;
        auto it = lower_bound(A.begin(), A.end(), up);
        if (it == A.end()) it = A.begin();
        int first = *it;
        int first_dist = (abs(A[i] - first) + T) % T;
        ans = max(ans, min(first_dist, T - first_dist));
        if (it == A.begin()) it = --A.end();
        else --it;
        int second = *it;
        int second_dist = (abs(A[i] - second) + T) % T;
        ans = max(ans, min(second_dist, T - second_dist));
    }
    out((ans + 1) / 2);
}
#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...