Submission #1208934

#TimeUsernameProblemLanguageResultExecution timeMemory
1208934qilbyRoom Temperature (JOI24_ho_t1)C++20
5 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 500009; ll n, t, a[N], p[N]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> t; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) a[i] %= t; sort(a + 1, a + n + 1); for (int i = 1; i <= n; i++) p[i] = p[i - 1] + a[i]; ll res = (ll)1e18; for (int i = 1; i <= n; i++) { ll x = a[i]; int l = 1, r = i; while (l < r) { int mid = (l + r) >> 1; if (abs(a[mid] - x) <= t - abs(a[mid] - x)) r = mid; else l = mid + 1; } int lg = l; l = i, r = n; while (l < r) { int mid = (l + r + 1) >> 1; if (abs(a[mid] - x) <= t - abs(a[mid] - x)) l = mid; else r = mid - 1; } int rg = l; ll crr = x * (ll)(i - lg + 1) - (p[i] - p[lg - 1]); crr += t * (ll)(lg - 1) - x * (ll)(lg - 1) + p[lg - 1]; crr += (p[rg] - p[i]) - x * (ll)(rg - i); crr += t * (ll)(n - rg) - (p[n] - p[rg]) + x * (ll)(n - rg); res = min(res, crr); } cout << res; }
#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...