Cho A ký tự a và B ký tự b, với 1≤A,B≤30. Xét mọi chuỗi độ dài A+B chứa đúng số ký tự trên, sắp theo thứ tự từ điển. Cho K hợp lệ, hãy in chuỗi thứ K.
Input
Một dòng chứa ba số nguyên A,B và K.
Output
In chuỗi đứng ở vị trí K.
Constraints
1≤A,B≤30.
1≤K≤C(A+B,A).
Scoring
Subtask 1 (50% số điểm): A+B≤20.
Subtask 2 (50% số điểm): Không có giới hạn bổ sung.
Example
Test 1
Input
2 2 4
Output
baab
Giải thích: Theo thứ tự aabb, abab, abba, baab, baba, bbaa, chuỗi thứ tư là baab.
Lời giải tóm tắt
Phân tích: Tiền xử lý hệ số tổ hợp đến 60, chặn an toàn nếu cần.
Phân tích: Khi còn A chữ a, B chữ b:
Phân tích: nếu A=0 hoặc B=0, phần còn lại đã xác định;
Phân tích: nếu đặt a, block có C(A+B-1,A-1) chuỗi;
Phân tích: nếu K nằm trong block đó, in a; nếu không, trừ block rồi in b.
Phân tích: Lặp đến khi hết ký tự. Giữ K 1-based trong toàn bộ thuật toán để tránh nhầm biên.
Tính đúng đắn: Mọi chuỗi bắt đầu bằng a đứng trước mọi chuỗi bắt đầu bằng b. Số chuỗi của block a là số cách chọn vị trí cho A-1 chữ a còn lại. Thuật toán chọn đúng block chứa K và cập nhật thứ tự nội bộ; quy nạp theo A+B chứng minh đáp án đúng.
Độ phức tạp: O(A+B) thời gian sau O((A+B)²) tiền xử lý; O((A+B)²) bộ nhớ.