Submission #1170760

#TimeUsernameProblemLanguageResultExecution timeMemory
1170760CraftlessRoom Temperature (JOI24_ho_t1)C++20
50 / 100
0 ms328 KiB
#include <bits/stdc++.h>

#define int long long int
#define F first
#define S second
#define pb push_back
#define mp make_pair
#define pi pair<int, int>
#define INF 1e18

using namespace std;

int N, T, A[500010], mn = INF, hi = INF, mxd = -INF, mnd = INF;
// multiset<int> ms;

// once someone reaches half of T, flip them 
// use a multiset???

int32_t main() {

    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);

    cin >> N >> T;
    for (int i = 0; i < N; i++) {
        cin >> A[i];
        mn = min(mn, A[i]);
    }

    for (int i = 0; i < N; i++) {
        int m = (A[i] - mn) % T;
        int d = min(m, T - m);
    }

    for (int j = 0; j < N; j++) {
        int m = (A[j] - mn) % T;
        int d = m;
        if (abs(m) <= abs(T - m)) d = m;
        else d = T - m;
        mxd = max(mxd, d);
        mnd = min(mnd, d);
        // cout << d << " ";
    }

    cout << (mxd - mnd) / 2 + ((mxd - mnd) % 2 != 0) << "\n";

    // for (int j = 0; j < N; j++) {
    //     int m = (A[j] - i) % T;
    //     int d = min(abs(m), abs(T - m));
    //     mxd = max(mxd, d);
    //     ms.insert(d);
    // }

    // incr by 1 each time
    // until > half then flip

    // for (int i = mn - T / 2; i <= mn + T / 2; i++) {
    //     int mxd = -INF;
    //     for (int j = 0; j < N; j++) {
    //         int m = (A[j] - i) % T;
    //         int d = min(abs(m), abs(T - m));
    //         mxd = max(mxd, d);
    //         cout << d << " ";
    //     }
    //     cout << endl;
    //     hi = min(hi, mxd);
    // }

    // cout << hi << "\n";

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