Submission #1263047

#TimeUsernameProblemLanguageResultExecution timeMemory
1263047norman165Room Temperature (JOI24_ho_t1)C++20
35 / 100
0 ms328 KiB
#include <bits/stdc++.h>

#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define int long long
#define yes() cout << "YES\n"
#define no() cout << "NO\n"

using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;

const int inf = 1e18;
const int mod = 1e9 + 7;
const int maxn = 1e6;
const int mod1 = 998244353;
const int mod2 = 1e18 + 1;
const int mod3 = 1e9 + 9;
const int mod4 = 333333333;
const int mod5 = 200000;
const int mod6 = 10007;
const int k = 3000;
const int w = 1e5;
const ld EPS = 1e-8;

int LOG = 30;

void solve() {
    int n, k;
    cin >> n >> k;

    vector<int> a(n);
    for (int& i : a) cin >> i;

    // sort(all(a));
    set<int> cand;
    for (int& i : a) cand.insert(i % k);
    for (int& i : a) cand.insert(k - (i % k));
    for (int& i : a) cand.insert(max(0ll, k - (i % k) - 1));
    cand.insert(k - 1);
    cand.insert(0);
    int ans = inf;
    for (auto& i : cand) {
        int x = i;
        int sum = 0;

        for (int& j : a) {
            int y = abs(x - j) % k;
            sum = max(sum, min(y, k - y));
        }

        ans = min(ans, sum);
    }

    cout << ans << "\n";
}

signed main() {
    // cout.precision(16);

    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int t = 1;
    // cin >> t;

    while (t--) {
        solve();
    }
}
#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...