시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB307736030.000%

문제

고려대학교 배드민턴 동아리원들이 배드민턴을 치려고 한다. 모두가 동시에 재밌게 배드민턴을 치기 위해, 동아리원들의 각각의 실력을 고려하여 다음과 같이 복식 팀을 만들려고 한다.

배드민턴 복식은 2명이 짝을 지어 대결하기 때문에, 양쪽에서 총 4명이 한 팀을 이루어 게임을 진행한다. 또한 모든 사람의 배드민턴 실력을 자연수로 나타낼 수 있다. 이 때 각 팀의 (실력 최댓값) - (실력 최솟값) 을 그 팀의 실력차라 하자. 비슷한 실력대의 사람들끼리 배드민턴을 쳐야 재미있게 칠 수 있으므로, 실력차가 작을수록 게임이 재미있다. 또한 실력차와 별개로 배드민턴을 치지 않는 것이 가장 재미가 없기 때문에, 팀을 가능한 한 많이 만들어야 한다.

지금은 사람이 많아 여러 팀을 만들어야 하므로, 모든 팀의 실력차의 총합이 최소가 되도록 해야 한다. 그런데 배드민턴에 참여한 인원수가 4의 배수가 아닐 수 있으므로, 누군가는 배드민턴을 치지 못할 수 있다.

실력차의 합이 최소가 되도록 팀을 구성할 때, 실력차의 합의 최솟값과 배드민턴을 치지 못하는 사람들이 누군지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 배드민턴에 참가한 인원수 $N$이 주어진다. ($4 \leq N \leq 10^5$)

둘째 줄에 $N$명의 배드민턴 실력을 나타내는 정수 $m_0,m_1,\ldots ,m_{N-1}$이 공백을 사이에 두고 주어진다. ($1\leq m_i \leq 10^9$)

실력은 사람의 번호 순서대로 주어지기 때문에 $i$번 사람의 실력은 $m_i$이며 번호는 0부터 시작한다.

출력

첫째 줄에 실력차의 합의 최솟값을 출력한다.

둘째 줄부터 배드민턴을 치지 못하는 사람의 번호를 한 줄에 한 명씩 출력한다. 만약 여러 가지 경우가 있다면 아무 거나 출력한다.

예제 입력 1

10
4 99 3 98 50 51 2 97 1 96

예제 출력 1

6
4
5

(1, 4, 2, 3), (96, 99, 97, 98) 의 두 팀을 만들고 4번, 5번을 빼는 것이 실력 차를 최소로 만들 수 있다.

예제 입력 2

8
5 3 1 2 24 30 27 29

예제 출력 2

10

예제 입력 3

9
1 10 9 8 7 30 25 20 15

예제 출력 3

18
0