#include<stdio.h> #include<algorithm> using namespace std; int n, m, k, c[201][101]; int main() { for (int i = 0; i <= 200; i++) { c[i][0] = 1; for (int j = 1; j <= i; j++) c[i][j] = min(c[i - 1][j - 1] + c[i - 1][j], (int)1e9); } scanf("%d %d %d", &n, &m, &k); int tot = n + m; if (k > c[tot][n]) puts("-1"); else { for (int i = 0; i < tot; i++) { if (k > c[n + m - 1][m]) { printf("z"); k -= c[n + m - 1][m]; m--; } else { printf("a"); n--; } } } return 0; }
1256번: 사전
https://www.acmicpc.net/problem/1256
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기