Submission #1232042

#TimeUsernameProblemLanguageResultExecution timeMemory
1232042clemmy14Room Temperature (JOI24_ho_t1)C++20
100 / 100
162 ms24760 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;

signed main() {
    int n, t; cin >> n >> t;
    vector<int> a(n);
    for(int i=0; i<n; i++) cin >> a[i];
    for(int i=0; i<n; i++) a[i]%=t;
    sort(a.begin(), a.end());
    vector<int> cur={a[0]};
    for(int i=1; i<n; i++) if(a[i] != a[i-1]) cur.push_back(a[i]);
    a=cur;
    vector<int> aa;
    for(int i=0; i<a.size(); i++) aa.push_back(a[i]-t);
    for(int i=0; i<a.size(); i++) aa.push_back(a[i]);
    for(int i=0; i<a.size(); i++) aa.push_back(a[i]+t);

    // for(auto x : aa) cout << x << ' ';
    // cout << endl;

    int best=t/2;

    for(int i=0; i<a.size()*2; i++) {
        int mid = aa[i]+(aa[i+a.size()-1]-aa[i])/2;
        //cout << aa[i] << ' ' << mid << ' ' << aa[i+a.size()-1] << endl;
        best=min(best, max(mid-aa[i], aa[i+a.size()-1]-mid));
    }

    cout << best;

    return 0;
}
#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...