#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 + 1) / 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 time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |