아름다운 수열 만들기

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

요약
주어진 N에 대해 이웃한 원소가 다르고 0, 1, 2 각각의 인접 차이 합이 모두 같은 길이 N 수열이 존재하는지 판정하고, 존재하면 하나를 구성한다.
난이도

보통10점 중 7점

유형
그리디, 수학, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

형진이는 길이 NN의 아름다운 수열을 만들고 싶다.

수열 A_1,A_2,…,A_NA\_1,A\_2,\dots ,A\_N에 대해서, 다음 조건을 모두 만족하면 이를 아름다운 수열이라고 부른다.

  • 수열의 모든 원소는 0, 1, 2중 하나이다.
  • 인접한 모든 원소는 서로 다르다.
  • 0 원소들의 모든 인접한 원소들의 차이의 총합과, 1 원소들의 모든 인접한 원소들의 차이의 총합과, 2 원소들의 모든 인접한 원소들의 차이의 총합은 같다.

예를 들어, \[0,1,2,0,1,2]\[0,1,2,0,1,2]은 아름다운 수열이다. 수열의 모든 원소가 0, 1, 2중 하나이며 인접한 모든 원소는 서로 다르다.

또한, 0 원소들의 인접한 차이의 총합을 구해보면, 우선 첫 번째 원소 0은 왼쪽 원소는 없고 오른쪽 원소와의 인접한 차이가 ∣0−1∣=1\vert 0-1\vert =1이므로 11을 기여하고, 네번째 원소 0은 ∣2−0∣+∣0−1∣=3\vert 2-0\vert +\vert 0-1\vert =3이므로 33을 기여하여, 0 원소들의 인접한 차이의 총합은 44이다.

비슷하게 1 원소들의 인접한 차이의 총합은 ∣0−1∣+∣1−2∣=2\vert 0-1\vert +\vert 1-2\vert =2인 원소 하나와 ∣0−1∣+∣1−2∣=2\vert 0-1\vert +\vert 1-2\vert =2인 원소 하나가 있으므로 총 44이며, 2 원소들의 인접한 차이의 총합은 ∣1−2∣+∣2−0∣=3\vert 1-2\vert +\vert 2-0\vert =3인 원소 하나와 ∣1−2∣=1\vert 1-2\vert =1인 원소 하나가 있으므로 총 44이다. 따라서 0, 1, 2원소들의 모든 인접한 원소들의 차이의 총합은 서로 같다.

한편, \[0,0,0]\[0,0,0]은 아름다운 수열이 아니다. 0, 1, 2원소들의 모든 인접한 원소들의 차이의 총합은 같으나, 인접한 원소들 중 서로 같은 것이 존재하기 때문이다.

조건을 만족하도록 하는 길이 NN의 아름다운 수열을 구성할 수 있는지 판단하고, 구성할 수 있다면 그러한 수열 A_1,A_2,…,A_NA\_1,A\_2,\dots ,A\_N을 구성하여라.

입력

첫째 줄에 수열의 길이를 나타내는 정수 NN이 주어진다. (3≤N≤100,0003\le N\le 100\\, 000)

출력

첫째 줄에 조건을 만족하도록 하는 길이 NN의 아름다운 수열을 구성할 수 있다면 Yes를, 없다면 No를 출력한다.

길이 NN의 아름다운 수열을 구성할 수 있다면, 둘째 줄에 조건을 만족하는 수열 A_1,A_2,…,A_NA\_1,A\_2,\dots ,A\_N을 공백을 사이에 두고 출력한다.

예제2

  1. 예제 1

    입력
    6
    
    예상 출력
    Yes
    0 1 2 0 1 2
    
  2. 예제 2

    입력
    3
    
    예상 출력
    No