만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

기차 여행

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

요약
N행 4열 좌석에 4N명을 배치하여 친구 쌍 사이 거리 L에 대해 1/L^2의 합이 최대가 되도록 합니다.
난이도

어려움10점 중 8점

유형
그래프, 그리디, 구현
정답자
아직 제출이 없습니다

문제

어떤 사람들이 기차를 타려고 하며, 각자 어느 자리에 앉을지 정하려고 한다. 사람들 중 MM 쌍은 친구 사이이며, 이들은 서로 최대한 가까이 앉기를 원한다. 기차 객실은 NN개의 행으로 이루어져 있고, 각 행에 자리가 4개씩 있는 N×4N \times 4 격자 모양이다. 그룹에는 총 4N4N명이 있으며, 사람들은 11번부터 4N4N번까지 번호가 붙어 있다.

유클리드 거리가 L=dx2+dy2L = \sqrt{dx^2 + dy^2}인 자리에 앉은 친구 한 쌍은 그룹의 총 행복도에 1/L21/L^2을 더한다. 여러분의 과제는 총 행복도가 최대가 되도록 사람들을 배치하는 것이다.

입력

입력은 1010개의 테스트 케이스로 이루어진다.

첫째 줄에 테스트 케이스 번호 TT (0≤T≤100 \le T \le 10)가 주어진다. (00은 예시 케이스이다.) 둘째 줄에는 객실의 행 수 NN과 친구 쌍의 수 MM (1≤N≤25 0001 \le N \le 25\,000, 1≤M≤100 0001 \le M \le 100\,000)이 주어진다. 이어지는 MM개의 줄에는 친구 두 명의 번호 aa와 bb (1≤a,b≤4N1 \le a,b \le 4N, a≠ba \ne b)가 각각 주어진다.

출력

NN개의 줄을 출력한다. 각 줄에는 정수 4개를 출력하며, 그 행에 앉은 네 사람의 번호를 적는다. 모든 사람은 어딘가의 자리에 배치되어야 한다.

힌트

예시 케이스에서는 2×42 \times 4 격자에 8명을 배치한다. 예시 해답은 1번과 4번을 제외한 모든 친구 쌍의 거리를 최적화하며, 1번과 4번은 서로 3\sqrt 3만큼 떨어져 앉는다. 이때 총 행복도는 4⋅1/1+1/3≈4.334 \cdot 1/1 + 1/3 \approx 4.33이다.

모든 친구 쌍이 거리 1에 앉도록 배치하면 더 나은 해를 얻을 수 있다. 만약 이것이 실제 테스트 케이스였고 다른 참가자가 이 해(총 행복도 55)를 냈다면, 이 테스트 케이스는 10⋅(4.33/5)2≈7.5110 \cdot (4.33 / 5)^2 \approx 7.51점을 받았을 것이다.

예제1

  1. 예제 1

    입력
    0
    2 5
    5 7
    8 7
    1 2
    2 3
    1 4
    
    예상 출력
    6 5 7 8
    1 2 3 4