이상적인 문자열

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

요약
각 문자의 전체 등장 횟수가 그 문자가 처음 등장하는 위치와 같아지도록 길이 N인 사전순 최소 문자열을 만들고, 불가능하면 -1을 출력하는 문제입니다.
난이도

보통10점 중 7점

유형
그리디, 동적 계획법, 조합론, 문자열
정답자
아직 제출이 없습니다

문제

문자열의 첫 문자를 1번 위치로 센다. 어떤 문자열에서 각 문자가 전체 문자열에 등장한 횟수가 그 문자의 첫 등장 위치와 같으면, 그 문자열을 이상적인 문자열이라고 한다.

예를 들어 BAOOOA는 이상적인 문자열이다. B는 처음 1번 위치에 나타나고 전체에서 1번 등장한다. A는 처음 2번 위치에 나타나고 전체에서 2번 등장한다. O는 처음 3번 위치에 나타나고 전체에서 3번 등장한다.

길이 N이 주어졌을 때, 길이가 N인 이상적인 문자열 중 사전순으로 가장 앞서는 문자열을 출력하라. 그런 문자열이 없으면 -1을 출력한다.

입력

첫째 줄에 자연수 N이 주어진다. (1 <= N <= 100)

출력

정답 문자열을 한 줄에 출력한다.

예제6

  1. 예제 1

    입력
    3
    
    예상 출력
    ABB
    
  2. 예제 2

    입력
    1
    
    예상 출력
    A
    
  3. 예제 3

    입력
    2
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    6
    
    예상 출력
    ABCBCC
    
  5. 예제 5

    입력
    7
    
    예상 출력
    ABBCCCC
    
  6. 예제 6

    입력
    5
    
    예상 출력
    -1