UCPC 중학교에서는 다른 반에 있는 친구에게 편지를 보내는 것이 유행이다. UCPC 중학교에는 1반부터 N반까지 총 N개의 반이 있고, 각 반의 교실은 반 번호 순서대로 긴 복도를 따라 나열되어 있다. i반 교실의 위치는 복도의 시작점으로부터의 거리를 나타내는 정수 x_i로 표현된다.
동규는 편지 유행이 좋은 사업 기회라고 생각해서 편지 배달 서비스를 기획했다. 학생들이 앱을 통해 편지 배송 요청을 접수하면, 쉬는 시간에 일괄적으로 편지를 배달해 주는 서비스이다. 각 편지 배송 요청에는 1번부터 M번까지 번호가 붙어 있으며, 출발지와 목적지의 반 번호 쌍 (s_i,e_i)가 적혀 있다.
동규는 원활한 배달을 위해 각 반에서 한 명씩을 뽑아 배달원으로 고용했다. 동규가 배달원들에게 편지 배송 요청을 적절히 배분해 주면, 각 배달원은 그에 따라 편지를 배달하고 동규에게 수당을 받는다. 자세한 규칙은 다음과 같다.
예를 들어, 4개의 반 교실이 1의 간격을 두고 나란히 있고, 배달해야 하는 편지의 출발지와 목적지 쌍이 순서대로 (4,2), (1,3)이라고 하자.
만약 1반의 배달원에게 2번 편지를 배분하고 3반의 배달원에게 1번 편지를 배분한다면, 1반의 배달원이 이동해야 하는 거리는 2+2=4이고 3반의 배달원이 이동해야 하는 거리는 1+2+1=4이다. 따라서 동규는 두 배달원에게 총 4+4=8의 수당을 지급해야 한다. (그림 I.1)
한편, 2, 3, 4반의 배달원들에게는 편지를 배분하지 않고 1반의 배달원에게 2, 1번 편지를 순서대로 배분한다면, 1반의 배달원이 이동해야 하는 거리는 2+1+2+1=6이 된다. 따라서 동규는 1반의 배달원에게만 6의 수당을 지급하면 된다. (그림 I.2)
![]() | ![]() |
| 그림 I.1: 동규가 8의 수당을 지급해야 하는 배분 방식 | 그림 I.2: 동규가 6의 수당을 지급해야 하는 배분 방식 |
동규는 배달원들에게 지급할 총 수당을 최소화하고 싶다. 위 예시의 경우, 1반의 배달원에게만 2, 1번 편지를 순서대로 배분했을 때 동규가 지급할 총 수당이 최소가 된다. 배달원들에게 편지 배송 요청을 어떻게 배분해야 하는지 구하시오.
첫 번째 줄에 정수 N, M이 공백으로 구분되어 주어진다. (2≤N≤300,000; 1≤M≤300,000)
두 번째 줄에 N개의 서로 다른 정수 x_i가 공백으로 구분되어 오름차순으로 주어진다. i번째 정수는 i반의 교실 위치를 나타낸다. (0≤x_i≤109)
세 번째 줄부터 다음 M개의 각 줄에 정수 s_i, e_i가 공백으로 구분되어 주어진다. (1≤s_i,e_i≤N; s_i=e_i) 이 중 i번째 줄은 i번 편지 배송 요청을 나타내며, s_i는 출발지 교실의 반 번호, e_i는 목적지 교실의 반 번호이다.
첫 번째 줄에 동규가 지급해야 하는 총 수당의 최솟값을 출력한다.
그 다음 N개의 줄을 출력한다. 이 중 i번째 줄에는 i반 배달원이 동규에게 받을 편지 배송 요청의 개수를 출력한 뒤, 동규에게 받을 편지 배송 요청의 번호를 순서대로 출력한다.
가능한 배분 방법이 여러 가지라면 하나만 출력한다.