#include<iostream>
#include<cstring>
using namespace std;
const int DIV = 10007;
int n;
int ascend[10][1001];
int calascend() {
memset(ascend, 0, sizeof(ascend));
for (int i = 0; i <= 9; i++) {
ascend[i][1] = 1;
}
for (int i = 2; i <= n; i++) {
for (int j = 0; j <= 9; j++) {
for (int k = j; k <= 9; k++) {
ascend[j][i] += ascend[k][i-1];
ascend[j][i] %= DIV;
}
}
}
int sum = 0;
for (int i = 0; i < 10; i++)
sum += ascend[i][n];
return sum % DIV;
}
int main(void) {
cin >> n;
cout << calascend();
}
'백준 알고리즘 > 다이나믹 프로그래밍' 카테고리의 다른 글
백준 11048번 C++ (0) | 2019.01.18 |
---|---|
백준 2167번 C++ (0) | 2019.01.17 |
백준 9461번 C++ (0) | 2019.01.17 |
백준 9465번 C++ (0) | 2019.01.17 |
백준 1010번 C++ (0) | 2019.01.15 |