Tågresan | 프로그래밍의 벗 PivotOJ
PivotOJ

Tågresan

시간 제한: 1000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2020 — kattBOJ 26965

문제

En grupp personer ska åka tåg och funderar hur de ska sitta. MM par av personerna är vänner och vill sitta så nära varandra som möjligt. Tågvagnen de ska sitta i har NN rader och är utformad som ett N×4N \times 4 rutnät, med 4 platser på varje rad. Det finns 4N4N personer i gruppen. Personerna är numrerade 11 till 4N4N.

Varje par av vänner som sitter på platser med euklidiskt avstånd L=dx2+dy2L = \sqrt{dx^2 + dy^2} bidrar med 1/L21/L^2 till gruppens totala lycka. Din uppgift är att placera ut personerna så att gruppens lycka blir så stor som möjligt.

입력

Indatan består av 1010 testfall.

Den första raden innehåller talet TT (0T100 \le T \le 10), som beskriver numret på testfallet (00 för sample). Den andra raden innehåller talen NN och MM (1N250001 \le N \le 25\,000, 1M1000001 \le M \le 100\,000) -- antalet rader i tågvagnen samt antalet par av vänner. De följande MM raderna innehåller två heltal aa och bb (1a,b4N1 \le a,b \le 4N, aba \ne b) -- nummer för två vänner.

출력

Skriv ut NN rader med 4 heltal på varje. Varje rad ska innehålla nummer för de fyra personer som sitter på den raden. Alla personer ska placeras ut någonstans.

힌트

I exempelfallet vill vi placera ut 8 personer i ett 2×42 \times 4 rutnät. Exempellösningen optimerar avståndet för alla vänskapsrelationer utom 1 och 4 som sitter på avstånd 3\sqrt 3 från varandra. Summan av lycka blir 41/1+1/34.334 \cdot 1/1 + 1/3 \approx 4.33.

En bättre lösning kan fås till så att alla par av vänner sitter på avstånd 1. Om det testfallet have varit ett riktigt testfall och en annan deltagare hade genererat denna lösning (total lycka 55) så hade testfallet getts 10(4.33/5)27.5110 \cdot (4.33 / 5)^2 \approx 7.51 poäng.

예제

예제 1

입력
0
2 5
5 7
8 7
1 2
2 3
1 4
출력
6 5 7 8
1 2 3 4
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.