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

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

피쿨레

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

난이도

아직 분류되지 않았습니다

정답자
아직 제출이 없습니다

문제

피쿨레는 둥글고 반짝이는 구슬이다. 예전에 아이들이 가지고 놀았다. 우리 세계의 피쿨레마다 정수가 하나씩 적혀 있다. 값이 YY인 피쿨레가 값이 XX인 피쿨레를 맞히면, 값이 YY인 피쿨레는 사라지고 맞은 피쿨레의 값은 XX에서 X−YX-Y로 바뀐다.

주인공 도도는 피쿨레 NN개를 왼쪽에서 오른쪽으로 일렬로 늘어놓았다. 위치는 왼쪽부터 11번부터 NN번까지 매겨진다. 처음에 ii번 위치의 피쿨레에는 AiA_i가 적혀 있다. 게임은 다음과 같이 진행된다. 매 단계마다 도도가 22번부터 NN번 사이 위치의 피쿨레 하나를 골라 왼쪽으로 민다. 피쿨레는 다른 피쿨레에 부딪힐 때까지 움직이고, 부딪히면 위에서 설명한 방식으로 두 피쿨레가 하나로 합쳐진다. N−1N-1번 밀고 나면 11번 위치에 피쿨레가 하나만 남는다.

도도는 큰 수를 좋아한다. 그래서 마지막 피쿨레에 남을 수 있는 가장 큰 수와, 그 수를 얻으려면 피쿨레를 어떤 순서로 밀어야 하는지 알고 싶어 한다.

입력

첫 줄에 자연수 NN (1≤N≤1051 \le N \le 10^5)이 주어진다. 둘째 줄에는 피쿨레에 적힌 정수 NN개가 주어진다 (−109≤Ai≤109-10^9 \le A_i \le 10^9).

출력

첫 줄에 마지막 피쿨레에 남는 수를 출력한다. 다음 N−1N-1개 줄에는 도도가 피쿨레를 미는 순서를 출력한다. ii번째 줄의 수는 ii번째 단계에서 밀 피쿨레의 위치다. 그 위치에는 이미 피쿨레가 있어야 한다.

힌트

첫 번째 테스트 설명: 두 번째 피쿨레만 밀 수 있다. 그러면 첫 번째 피쿨레의 값이 −1-1이 되고, 이것이 가능한 최댓값이다.

두 번째 테스트 설명: 밀 수 있는 순서는 두 가지다. {2, 3} 순서에서는 먼저 2번 위치의 피쿨레를 밀면 2 _ 1이 되고, 마지막으로 3번 위치의 피쿨레를 밀어 값이 1인 피쿨레가 남는다. 더 나은 순서는 {3, 2}이다. 첫 번째로 3번을 밀면 3 0 _이 남고, 마지막으로 2번을 밀면 값이 3인 피쿨레가 남는데 이것이 최적이다.

예제2

  1. 예제 1

    입력
    2
    5 6
    
    예상 출력
    -1
    2
    
  2. 예제 2

    입력
    3
    3 1 1
    
    예상 출력
    3
    3
    2