페이지

13270번: 피보나치 치킨

https://www.acmicpc.net/problem/13270


#include<cstdio>
#include<algorithm>
using namespace std;
const int MXN = 10000;
int dp[MXN + 1][2], a = 1, b = 2, n;
int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) dp[i][0] = 1e9;
    while (b <= n) {
        for (int i = b; i <= n; i++) {
            dp[i][0] = min(dp[i][0], dp[i - b][0] + a);
            dp[i][1] = max(dp[i][1], dp[i - b][1] + a);
        }
        b += a;
        a = b - a;
    }
    printf("%d %d", dp[n][0], dp[n][1]);
    return 0;
}

댓글 없음 :

댓글 쓰기