본문 바로가기
백준 알고리즘/다이나믹 프로그래밍

백준 1309번 C++

by paysmile 2019. 2. 13.


#include <iostream>

#include <cstring>


using namespace std;


const int MAX = 100001;

const int MOD = 9901;

int n;

long long lionnum[3][MAX];


int lionnumcal() {

lionnum[0][1] = lionnum[1][1] = lionnum[2][1] = 1;


for (int i = 2; i <= n; i++) {

lionnum[0][i] = (lionnum[0][i - 1] + lionnum[1][i - 1] + lionnum[2][i - 1])%MOD;

lionnum[1][i] = (lionnum[0][i - 1] +  lionnum[2][i - 1])%MOD;

lionnum[2][i] = (lionnum[0][i - 1] + lionnum[1][i - 1])%MOD;

}

return (lionnum[0][n] + lionnum[1][n] + lionnum[2][n])%MOD;

}


int main(void) {

cin >> n;

memset(lionnum, 0, sizeof(lionnum));

cout << lionnumcal();

return 0;

}

'백준 알고리즘 > 다이나믹 프로그래밍' 카테고리의 다른 글

백준 1915번 C++  (0) 2019.02.14
백준 6359번 C++  (0) 2019.02.13
백준 11054번 C++  (0) 2019.02.13
백준 1965번 C++  (0) 2019.02.13
백준 1520번 C++  (0) 2019.01.23