아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Metroovõrgu tsoonid

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

요약
각 구역에 역이 최소 하나씩 있고 a구역과 b구역 사이 이동이 max(a,b) 이하 구역만 거치도록 하는 동심원 구역의 최대 개수를 구한다.
난이도

보통10점 중 7점

유형
그래프, DFS, 완전 탐색
정답자
아직 제출이 없습니다

문제

Mõõdukalt Tähelepanuväärses Linnas on suur metroovõrk. Metroovõrk koosneb NN jaamast, mis on nummerdatud 1,…,N1, \ldots, N, ning MM neid ühendavast raudteelõigust. On teada, et ükski raudteelõik ei ühenda jaama iseendaga, et ükski raudteelõikude paar ei ühenda sama jaamapaari ja et mööda neid raudteelõike on võimalik sõita igast jaamast igasse teise jaama. Iga jaama kohta on teada tema asukoht (x;y)(x; y) koordinaattasandil, kus linna keskpunkt asub punktis (0;0)(0; 0). Et metroojaamad asuvad maa all, võib ka juhtuda, et linnas on mitu samade koordinaatidega metroojaama, erinevatel sügavustel.

Suurtes linnades on tavaks jaotada metroovõrk tsoonideks. Sama plaan on käiku minemas ka Mõõdukalt Tähelepanuväärses Linnas. Lihtsuse mõttes otsustati jaamad jaotada tsoonidesse selle järgi, kui kaugel on nad linna keskpunktist.

Selleks joonistab planeerija linnakaardile k−1k - 1 ringjoont, kõik keskpunktiga (0;0)(0; 0) ja iga järgmine eelmisest suurema raadiusega. Siis:

  • 1. tsoon koosneb jaamadest, mis jäävad 1. ringjoone sisse.
  • 2. tsoon koosneb jaamadest, mis jäävad 1. ringjoone peale või 1. ja 2. ringjoone vahele.
  • 3. tsoon koosneb jaamadest, mis jäävad 2. ringjoone peale või 2. ja 3. ringjoone vahele.
  • …\ldots
  • kk. tsoon koosneb jaamadest, mis jäävad (k−1)(k-1). ringjoone peale või sellest väljapoole.

Sinu ülesanne on planeerijat aidata. Tsoonisüsteemi heaks toimimiseks on veel mõned nõuded:

  • Igas tsoonis peab olema vähemalt üks jaam.
  • Igast aa. tsooni jaamast peab olema võimalik liikuda mistahes bb. tsooni jaama nii, et ei läbita ühtki jaama, mille tsooni number on suurem kui max⁡(a,b)\max(a, b).
  • Tsoonide arv peab olema maksimaalne, mille juures on veel võimalik mõlemad eelmised nõuded rahuldada.

Joonisel 1 on näitena toodud üks võimalik metroovõrgustik ja tingimustele vastav tsoonideks jaotus. Esimesse tsooni kuuluvad jaamad 1, 2 ja 3; teise tsooni kuuluvad jaamad 5, 6 ja 7 ning kolmandasse tsooni ainult jaam 4. On selge, et igas tsoonis on vähemalt üks jaam.

Samuti kehtib teine nõue. Vaatame näiteks jaamu 1 ja 6, mis asuvad vastavalt 1. ja 2. tsoonis. Näeme, et jaamast 1 on võimalik liikuda jaama 6 kasutades ainult 1. ja 2. tsooni jaamu, näiteks 1→5→61 \to 5 \to 6 või 1→2→3→61 \to 2 \to 3 \to 6. Samuti on näiteks jaamast 1 võimalik liikuda jaama 3, läbides ainult 1. tsooni jaamu: 1→2→31 \to 2 \to 3.

Saab näidata, et 3 on antud metroovõrgu korral suurim võimalik tsoonide arv.

입력

Sisendi esimesel real on kaks täisarvu NN (2≤N≤3⋅1052 \le N \le 3 \cdot 10^5) ja MM (1≤M≤3⋅1051 \le M \le 3 \cdot 10^5).

Neile järgnevad NN rida, mis kirjeldavad jaamade asukohti. Nendest ii-s rida koosneb kahest täisarvust x_ix\_i ja y_iy\_i (−109≤x_i,y_i≤109-10^9 \le x\_i, y\_i \le 10^9), mis tähendavad, et jaam ii asub punktis (x_i;y_i)(x\_i; y\_i).

Neile järgnevad MM rida, mis kirjeldavad jaamade vahelisi raudteelõike. Nendest jj-s rida koosneb kahest täisarvust uu ja vv (1≤u,v≤N1 \le u, v \le N, u≠vu \ne v), mis tähendavad, et jaamad uu ja vv on omavahel raudteelõiguga ühendatud.

출력

Väljundi esimesele reale väljastada KK --- suurim võimalik tsoonide arv.

Teisele reale väljastada K−1K - 1 täisarvu D_1,D_2,…,D_K−1D\_1, D\_2, \ldots, D\_{K - 1} (0<D_1<D_2<⋯<D_K−1≤2⋅10180 < D\_1 < D\_2 < \cdots < D\_{K - 1} \le 2 \cdot 10^{18}), mis näitavad, et:

  • tsoon number 1 koosneb jaamadest, mille kaugus keskpunktist on intervallis \left\[0, \sqrt{D\_1}\right);
  • tsoon number ii (1<i<K1 < i < K) koosneb jaamadest, mille kaugus keskpunktist on intervallis \left\[\sqrt{D\_{i - 1}}, \sqrt{D\_i}\right);
  • tsoon number KK koosneb jaamadest, mille kaugus keskpunktist on intervallis \left\[\sqrt{D\_{K - 1}}, \infty\right).

Kui suurim võimalik tsoonide arv K=1K = 1, siis peab teine rida olema tühi.

Kui tsoonideks jaotamiseks on mitu võimalust, väljastada ükskõik milline neist.

예제2

  1. 예제 1

    입력
    7 8
    -1 0
    2 2
    1 0
    -6 2
    -4 -3
    -3 -4
    0 -5
    1 2
    2 3
    1 5
    1 7
    3 6
    4 5
    5 6
    6 7
    
    예상 출력
    3
    12 30
    
  2. 예제 2

    입력
    4 4
    2 2
    -2 -2
    3 -3
    -3 3
    1 3
    3 2
    1 4
    4 2
    
    예상 출력
    1