【每日一题】Problem 363B. Fence

发布时间 2023-06-11 19:55:24作者: HelloEricy

原题

解决思路

求 k 个木板的最小高度和,因为所有木板的高度和不超过 1e9,因此计算出到当前木板 j 的总高度 - 前 j - k 模板的总高度并求得最小数即可

#include <bits/stdc++.h>

int main() {
    int n, k; std::cin >> n >> k;
    std::vector<int> vec(n + 1, 0);
    for (int i = 1; i <= n; ++i) std::cin >> vec[i];

    int h = 1e9;
    int idx = 0;
    for (int i = 1; i <= n; ++i) {
        vec[i] += vec[i - 1];
        if (i >= k && vec[i] - vec[i - k] < h) {
            h = vec[i] - vec[i - k];
            idx = i - k + 1;
        }
    }

    std::cout << idx << std::endl;
    return 0;
}