배드민턴 복식 팀 만들기

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

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

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

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

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

입력

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

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

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

출력

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

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