반복 없는 단어

시간 제한2초메모리 제한128 MB

요약
앞 A개의 알파벳만 써서 길이 N의 문자열을 만들되, 어떤 비어 있지 않은 문자열도 K번 연속으로 나타나지 않게 하는 사전순 최소 문자열을 구한다.
난이도

어려움10점 중 8점

유형
백트래킹, 문자열, 그리디, 완전 탐색
정답자
아직 제출이 없습니다

문제

자연수 K가 주어진다. 문자열 S 안에 어떤 비어 있지 않은 문자열 T를 K번 연속으로 붙인 문자열이 부분 문자열로 나타나지 않으면, S를 K-반복이 없는 단어라고 한다.

K, N, A가 주어졌을 때, 길이가 N이고 K-반복이 없으며 알파벳의 처음 A개 대문자만 사용하는 단어 중 사전순으로 가장 앞서는 단어를 구하시오.

입력

첫째 줄에 세 정수 K, N, A가 공백으로 구분되어 주어진다.

출력

조건을 만족하는 단어를 출력한다. 그런 단어가 없으면 -1을 출력한다.

제한

  • 2 <= K <= 10
  • 1 <= N <= 50
  • 1 <= A <= 26

예제4

  1. 예제 1

    입력
    3 5 2
    
    예상 출력
    AABAA
    
  2. 예제 2

    입력
    3 5 1
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    3 10 2
    
    예상 출력
    AABAABABAA
    
  4. 예제 4

    입력
    3 50 2
    
    예상 출력
    AABAABABAABAABBAABAABABAABAABBAABAABABAABABBAABAAB