Baekjoon #21317

Baekjoon #21317

1개의 풀이 · C++

문제 원문 보기 ↗

SOLUTION INFO

C++ · main.cpp

main.cpp
#include<bits/stdc++.h>

using namespace std;

int DP[105][2], arr[105][2];

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

    int N; cin >> N;
    for(int i=1;i<N;i++) cin >> arr[i][0] >> arr[i][1];
    int k; cin >> k;
    for(int i=2;i<105;i++) DP[i][0] = DP[i][1] = INT_MAX;
    for(int i=1;i<N;i++) {
        DP[i + 1][0] = min(DP[i + 1][0], DP[i][0] + arr[i][0]);
        DP[i + 1][1] = min(DP[i + 1][1], DP[i][1] + arr[i][0]);
        DP[i + 2][0] = min(DP[i + 2][0], DP[i][0] + arr[i][1]);
        DP[i + 2][1] = min(DP[i + 2][1], DP[i][1] + arr[i][1]);
        DP[i + 3][1] = min(DP[i + 3][1], DP[i][0] + k);
    }
    cout << min(DP[N][0], DP[N][1]);

    return 0;
}

SOLUTION DESCRIPTION

풀이 설명

등록된 풀이 설명이 없습니다.