제출 #1330627

#제출 시각아이디문제언어결과실행 시간메모리
1330627bradley0927Room Temperature (JOI24_ho_t1)C++20
35 / 100
3 ms348 KiB
#include <iostream>
#include <vector>
#include <climits>
#include <cmath>
using namespace std;
int n, t;
vector<int> v;

int max_discomfort(int x) {
    int max_d = 0;
    for (int i = 0; i < v.size(); i++) {
        int k = max(0, (int)floor((double)(v[i] - x) / t + 0.5));//optimal jacket count
        int temp = v[i] - k*t;
        max_d = max(max_d, abs(x - temp));
    }
    return max_d;
}

int main() {
    //ans = sum of modulo?
    int mx = 0, mn = INT_MAX;
    cin >> n >> t;
    v.resize(n);
    for (int i = 0; i < n; i++) {
        cin >> v[i];
        mx = max(mx, v[i]);
        mn = min(mn, v[i]);
    }
    //ternery search
    int l = 0, r = mx;
    while (r - l > 2) {
        int m1 = l + (r - l)/3;
        int m2 = r - (r - l)/3;
        if (max_discomfort(m1) < max_discomfort(m2)) r = m2;
        else l = m1 + 1;
    }
    int ans = INT_MAX;
    for (int i = l; i <= r; i++) ans = min(ans, max_discomfort(i));
    cout << ans << endl;
}
#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...