알고리즘/시뮬레이션 & 구현

[백준/구현/C++] 13335번 트럭 *

데메즈 2023. 3. 10. 14:39
728x90
반응형

문제는 여기!

#include <bits/stdc++.h>

using namespace std;
int N, W, L; // 트럭의 수, 다리길이, 다리의 최대 하중
int A[1001];
int T = 0;

void solve(){
    queue<int> q;
    int sum = 0;
    for(int i=0; i<N; i++){
        while(1){
            if(q.size()==W){ // 다리 위에 트럭 W개인 경우
                sum -= q.front();
                q.pop();
            }
            if(sum + A[i] <= L) break;
            q.push(0);
            T++;
        }
        q.push(A[i]);
        sum += A[i];
        T++;
    }
    T += W;
    cout << T;
}

void input(){
    cin >> N >> W >> L;
    for(int i=0; i<N; i++){
        cin >> A[i];
    }
}


int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    input();
    solve();

    return 0;
}
728x90
반응형