해 구성 문제

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

요약
주어진 N에 대해 최댓값과 최솟값의 차가 N+2 이하이면서 1부터 N까지의 가중치를 곱한 합이 0이 되는, 서로 다른 정수 N개의 수열을 만들거나 불가능함을 판정한다.
난이도

보통10점 중 7점

유형
그리디, 수학, 구현, 동적 계획법
정답자
아직 제출이 없습니다

문제

양의 정수 NN이 주어질 때 다음 조건을 만족하는 길이 NN의 정수 수열 A_1,A_2,…,A_NA\_1,A\_2,\ldots,A\_N을 구하여라.

  • 수열의 모든 원소는 서로 다르다.
  • max⁡(A)−min⁡(A)≤N+2\max(A) - \min(A) \le N+2
  • ∑_i=1NiA_i=0\displaystyle \sum\_{i=1}^{N} i A\_i = 0

입력

첫째 줄에 양의 정수 NN이 주어진다. (1≤N≤300,0001 \le N \le 300\\,000)

출력

만약 조건을 만족하는 수열 AA가 있다면 첫째 줄에 Yes를 출력하고, 둘째 줄에 수열의 원소 A_1,A_2,…,A_NA\_1,A\_2,\ldots,A\_N를 공백으로 구분하여 출력한다. 조건을 만족하는 수열 AA가 여러 가지라면 그중 아무거나 출력한다.

만약 조건을 만족하는 수열 AA가 없다면 첫째 줄에 No를 출력한다.

예제2

  1. 예제 1

    입력
    3
    
    예상 출력
    Yes
    -2 1 0
    
  2. 예제 2

    입력
    5
    
    예상 출력
    Yes
    -2 2 1 0 -1