#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
long long N, T;
cin >> N >> T;
vector<long long> a(N);
for (int i = 0; i < N; i++) {
long long Ai;
cin >> Ai;
// 只要 Ai % T,就能得到 a_i
a[i] = Ai % T;
}
// 先排序
sort(a.begin(), a.end());
// 计算相邻差,注意最后一个和第一个加上 T
long long M = 0;
for (int i = 0; i + 1 < N; i++) {
long long diff = a[i+1] - a[i];
if (diff > M) M = diff;
}
// 加上环绕的那段
long long wrap_diff = (a[0] + T) - a[N-1];
if (wrap_diff > M) M = wrap_diff;
// 计算 D = ceil((T - M) / 2)
long long gap = T - M;
// 注意向上取整:
long long D = (gap + 1) / 2;
// (因为 gap >= 0,一定能这样算)
cout << D << "\n";
return 0;
}
# | 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... |