#include<bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int arr[N];
vector<int> v;
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n,t;
    cin>>n >>t;
    int ans=INT_MAX;
    for(int i=1;i<=n;i++) cin>>arr[i];
    for(int i=1;i<=n;i++) arr[i]%=t;
    for(int i=1;i<=n;i++) v.push_back(arr[i]),v.push_back(arr[i]-t);
    sort(v.begin(),v.end());
    v.erase(unique(v.begin(),v.end()),v.end());
    for(int i=0;i<v.size();i++){
        int mx=INT_MIN;
        bool ab=true;
        for(int j=1;j<=n;j++){
            if(arr[j]<v[i]){
                ab=false;
                break;
            }
            if(arr[j]-t>=v[i]) mx=max(mx,arr[j]-t);
            else mx=max(mx,arr[j]);
        }
        if(!ab) break;
        ans=min(ans,mx-v[i]);
    }
    cout<<(int)(ceil((double)ans/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... |