Submission #1275501

#TimeUsernameProblemLanguageResultExecution timeMemory
1275501tvgkRoom Temperature (JOI24_ho_t1)C++20
20 / 100
2 ms584 KiB
#include<bits/stdc++.h>
using namespace std;
#define task "a"
#define se second
#define fi first
#define ll long long
#define ii pair<ll, ll>
const long mxN = 5e5 + 7;

int n, dif, a[mxN];

bool Binary(int mid)
{
    for (int i = 2; i <= n; i++)
    {
        if (a[i - 1] - mid <= a[i] - dif + mid)
            return 1;
    }
    return a[1] + mid >= a[n] - mid;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    //freopen(task".INP", "r", stdin);
    //freopen(task".OUT", "w", stdout);

    cin >> n >> dif;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    sort(a + 1, a + n + 1);

    for (int i = 1; i <= n; i++)
        a[i] -= (a[i] - a[1]) / dif * dif;

    int l = 0, r = 1e9, ans = 1e9;
    while (l <= r)
    {
        int mid = (l + r) / 2;

        if (Binary(mid))
        {
            r = mid - 1;
            ans = mid;
        }
        else
            l = mid + 1;
    }
    cout << ans;
}

#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...