Abwords

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

요약
N이 주어질 때, A로 시작하는 A/B 단어 중 두 변환을 N번 적용해 자기 자신으로 돌아오는 순환이 존재하는 최소 길이를 구한다.
난이도

어려움10점 중 8점

유형
수학, 조합론, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

A와 B로만 이루어지고 길이가 2 이상이며 A로 시작하는 문자열을 단어라고 한다. 단어에는 다음 두 연산을 적용할 수 있고, 그 결과도 다시 단어가 된다.

  • R1: 마지막 글자만 바꾼다. A는 B가 되고 B는 A가 된다. 나머지 글자는 그대로 둔다.
  • R2: 단어 ww에서 새 단어 tt를 만든다. tt의 첫 글자는 A이다. i>1i > 1인 자리에서는 wi−1w_{i-1}과 wiw_i가 같으면 tit_i가 B, 다르면 A이다. 이렇게 만든 tt가 ww를 대신한다.

단어 ww에서 시작해 R1과 R2를 원하는 순서로 NN번 적용했을 때 다음 두 조건을 모두 만족하면, 이 연산 열을 ww의 NN-변환이라고 한다.

  • NN번째 연산을 마친 단어가 ww와 같다.
  • 도중에 나온 단어 N−1N-1개가 서로 다르고 ww와도 다르다.

1보다 큰 정수 NN이 주어진다. NN-변환을 시작할 수 있는 단어의 최소 글자 수를 구하라.

입력

첫째 줄에 정수 NN이 주어진다.

출력

NN-변환을 시작할 수 있는 단어의 최소 글자 수를 한 줄에 출력한다. 그런 단어가 없으면 -1을 출력한다.

제한

  • 2≤N≤1000002 \le N \le 100000

힌트

6번의 연산으로 자기 자신에게 돌아오면서 도중에 같은 단어가 두 번 나오지 않는 단어 중에 글자 수가 4보다 적은 것은 없다. 반면 네 글자 단어 AABB에는 그런 연산 열이 있다. AABB에 R2를 적용하면 ABAB, 다시 R2를 적용하면 AAAA, R1을 적용하면 AAAB, R2를 적용하면 ABBA, R1을 적용하면 ABBB, 마지막으로 R2를 적용하면 AABB로 돌아온다. 그래서 N=6N = 6의 답은 4이다.

예제3

  1. 예제 1

    입력
    6
    
    예상 출력
    4
    
  2. 예제 2

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

    입력
    9
    
    예상 출력
    9