BOJ 11003 최솟값 찾기

1 개요[ | ]

BOJ 11003 최솟값 찾기

2 C++[ | ]

#include <bits/stdc++.h>
using namespace std;

int N, L;
int A[5000000];
int D[5000000];

void solve() {
    deque<int> window;
    for (int i = 0; i < N; i++) {
        while (!window.empty() && window.front() <= i - L) {
            window.pop_front();
        }
        while (!window.empty() && A[window.back()] >= A[i]) {
            window.pop_back();
        }
        window.push_back(i);
        D[i] = A[window.front()];
    }
    for (int i = 0; i < N; i++) {
        cout << D[i] << ' ';
    }
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> N >> L;
    for (int i = 0; i < N; i++) {
        cin >> A[i];
    };
    solve();
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}