아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

donstructive

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

요약
1부터 N까지의 순열 중 모든 연속 부분 수열 합의 총합이 최대가 되는 순열을 구한다.
난이도

보통10점 중 5점

유형
그리디, 수학, 배열
정답자
아직 제출이 없습니다

문제

순열은 11부터 NN까지 NN개의 정수가 각각 한 번씩 나오는 수열이다. 예를 들어, \[1]\[1], \[3,5,2,1,4]\[3, 5, 2, 1, 4], \[1,3,2]\[1, 3, 2]는 순열이지만, \[2,3,2]\[2, 3, 2], \[4,3,1]\[4, 3, 1], \[0]\[0]은 순열이 아니다.

순열의 점수는 다음과 같은 방법으로 구한다.

  1. 순열의 모든 연속 부분 수열 각각에 대해 원소의 합을 구한다.
  2. 순열의 점수는 (1)에서 구한 모든 값의 합이다.

길이가 NN인 모든 순열 중에서 점수가 가장 높은 순열을 구해보자. 점수가 가장 높은 순열이 여러 가지라면 그 중 아무거나 하나를 출력한다.

입력

첫째 줄에 구하고자 하는 순열의 길이 NN이 주어진다. (1≤N≤200,000)(1 \le N \le 200\\,000)

출력

첫째 줄에 점수가 가장 높은 순열에 해당하는 NN개의 정수를 공백으로 구분해서 출력한다.

힌트

연속 부분 수열은 수열의 연속한 일부분이다. 예를 들어, 순열 \[2,3,4,1]\[2, 3, 4, 1]은 1010개의 연속 부분 수열을 갖고 있으며 이는 다음과 같다.

\[2]\[2], \[2,3]\[2, 3], \[2,3,4]\[2, 3, 4], \[2,3,4,1]\[2, 3, 4, 1], \[3]\[3], \[3,4]\[3, 4], \[3,4,1]\[3, 4, 1], \[4]\[4], \[4,1]\[4, 1], \[1]\[1].

예제1

  1. 예제 1

    입력
    4
    
    예상 출력
    2 3 4 1