#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAX = 100001;
const int MOD = 9901;
int n;
int cache[MAX][3];
int lion() {
cache[0][0] = cache[0][1] = cache[0][2] = 1;
for (int i = 1; i < n; i++) {
cache[i][0] = (cache[i - 1][0] + cache[i - 1][1] + cache[i - 1][2]) % MOD;
cache[i][1] = (cache[i - 1][0] + cache[i - 1][2]) % MOD;
cache[i][2] = (cache[i - 1][0] + cache[i - 1][1]) % MOD;
}
return (cache[n - 1][0] + cache[n - 1][1] + cache[n - 1][2]) % MOD;
}
int main(void) {
cin >> n;
cout << lion() << endl;
return 0;
}
'백준 알고리즘 > 다이나믹 프로그래밍' 카테고리의 다른 글
백준 1937번 C++ (0) | 2019.07.20 |
---|---|
백준 6359번 C++ (0) | 2019.07.20 |
백준 1965번 C++ (0) | 2019.07.20 |
백준 1520번 C++ (0) | 2019.07.20 |
백준 1890번 C++ (0) | 2019.07.17 |