홍수

주어진 탐욕 절차대로 순열 히스토그램을 만들어 갇힌 물 용량이 X가 되게 하고 실패하면 -1을 출력합니다.

쉬움2그리디구현아직 제출이 없습니다시간 제한1초메모리 제한64 MB

문제

남남서는 큰 홍수가 나서 자기 히스토그램이 물에 잠기는 꿈을 꿨다.

너비가 11인 열 NN개가 왼쪽부터 나란히 붙어 있는 히스토그램이 있고, ii번째 열의 높이는 hih_i이다. 각 열 위에 고인 물의 높이를 v1,v2,,vNv_1, v_2, \dots, v_N이라고 하자. 다음 세 조건을 모두 만족하면 물이 넘치지 않는다.

  • v1=0v_1 = 0이고 vN=0v_N = 0이다.
  • vi>0v_i > 0인 모든 ii (2iN)(2 \le i \le N)에 대해 hi+vihi1+vi1h_i + v_i \le h_{i-1} + v_{i-1}이다.
  • vi>0v_i > 0인 모든 ii (1iN1)(1 \le i \le N-1)에 대해 hi+vihi+1+vi+1h_i + v_i \le h_{i+1} + v_{i+1}이다.

히스토그램의 용량은 물이 넘치지 않는 v1+v2++vNv_1 + v_2 + \dots + v_N의 최댓값이다.

높이 h1,h2,,hNh_1, h_2, \dots, h_N11부터 NN까지의 수를 한 번씩 쓴 순열이면서 용량이 정확히 XX인 히스토그램을 찾아라.

입력

첫째 줄에 자연수 NNXX가 공백으로 구분되어 주어진다. (1N1061 \le N \le 10^6, 1X10151 \le X \le 10^{15})

출력

용량이 정확히 XX인 순열은 여러 개일 수 있으므로, 다음 절차가 만드는 순열 하나만 정답으로 인정한다.

  1. r=Xr = X로 두고, 빈 목록 SS에서 시작한다.
  2. ddN2N-2부터 11까지 11씩 줄이면서, rdr \ge d이면 N1dN-1-dSS에 넣고 rr에서 dd를 뺀다. N2N \le 2이면 이 과정에서 아무 것도 하지 않는다.
  3. 이 과정을 마쳤을 때 r>0r > 0이면 첫째 줄에 1-1만 출력한다.
  4. r=0r = 0이면 NN, SS에 들어간 수를 오름차순으로, N1N-1, 11부터 N2N-2까지의 수 중 SS에 없는 수를 내림차순으로 이어 붙여 공백으로 구분해 한 줄에 출력한다.

이 절차가 1-1을 내놓는 입력은 용량이 XX인 순열이 아예 없는 입력과 정확히 같고, 그렇지 않으면 절차가 만든 순열의 용량은 항상 XX이다.