#include <bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int a[N];
void solve()
{
    int n,t;
    cin>>n>>t;
    long long sm=0;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        a[i]%=t;
        sm+=(long long)a[i];
        // cout<<a[i]<<' ';
    }
    sm/=(long long)n;
    // cout<<endl;
    // cout<<sm<<endl;
    int ans=t+100;
    // for(int k=0;k<n;k++)
    {
        int j=sm;
        {
            int cur=0;
            for(int i=0;i<n;i++)
            {
                cur=max(cur,min({abs(j-a[i]),abs(j-a[i]-t),abs(j+t-a[i])}));
            }
            ans=min(ans,cur);
        }
        j=sm+t/2;
        {
            int cur=0;
            for(int i=0;i<n;i++)
            {
                cur=max(cur,min({abs(j-a[i]),abs(j-a[i]-t),abs(j+t-a[i])}));
            }
            ans=min(ans,cur);
        }
        j=sm-t/2;
        {
            int cur=0;
            for(int i=0;i<n;i++)
            {
                cur=max(cur,min({abs(j-a[i]),abs(j-a[i]-t),abs(j+t-a[i])}));
            }
            ans=min(ans,cur);
        }
    }    
    cout<<ans<<endl;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t=1;
    // cin>>t;
    while(t--)
    {
        solve();
    }
}
| # | 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... |