만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

구성

면접 대비

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

요약
1부터 N까지의 순열 중 모든 연속 부분 배열의 합을 더한 값이 가장 큰 순열을 구합니다.
난이도

보통10점 중 4점

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

문제

순열은 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]은 10개의 연속 부분 수열을 갖고 있으며, 이는 [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