Submission #1320800

#TimeUsernameProblemLanguageResultExecution timeMemory
1320800phamngocphuc2008Room Temperature (JOI24_ho_t1)C++20
35 / 100
2 ms568 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long
#define fi first
#define se second
#define sz(x) ((int)x.size())
#define all(a) (a).begin(), (a).end()
#define inpvi(a, n) vi a(n); for(auto &i : a) cin >> i;

int iceil(int a, int b)
{
    return (a+b-1)/b;
}

multiset<int> s;

int res()
{
    return iceil(*s.rbegin() - *s.begin(), 2);
}
bool chmin(int &a, int b)
{
    bool r = a > b;
    a = min(a,b);
    return r;
}

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    /*
    ins(1);
    ins(2);
    ins(4);
    ins(3);
    for(int i : l) cout << i << ' ';
    cout << '\n';
    for(int i : r) cout << i << ' ';
    cout << '\n';
    */

    int n,t;
    cin >> n >> t;
    vector<pair<int, bool>> a(n);
    for(int i = 0; i < n; ++i)
    {
        cin >> a[i].fi;
        a[i].se = (a[i].fi >= t);
        a[i].fi %= t;
        s.insert(a[i].fi);
        //cerr << a[i].fi << ' ';
    }
    sort(all(a));
    int ans = res();
    for(int i = 0; i < n; ++i)
    {
        int x = a[i].fi;

        if(a[i].se)
        {
            s.erase(s.find(x));
            s.insert(x+t);
        }
        /*
        for(int i : l) cerr << i << ' ';
        cerr << '\n';
        for(int i : r) cerr << i << ' ';
        cerr << '\n';
        */
        chmin(ans, res());
    }

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