만드는 중입니다

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

포뮬러 플랫랜드

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

요약
좌표가 주어진 평면 도로망에서 닫힌 순환 경로를 이루는 교차로 수의 최솟값을 구합니다.
난이도

어려움10점 중 8점

유형
그래프, BFS, 기하
정답자
아직 제출이 없습니다

문제

Flatland는 올해 처음으로 포뮬러 원 Flatland 그랑프리를 개최한다. 다른 많은 도시와 마찬가지로 Flatland도 레이스 전용 서킷을 지을 수 없어서, 일반 도로와 교차로 일부를 막아 서킷을 만들기로 했다. 여러분은 지난해 Flatland Olympics를 운영한 경험을 바탕으로 적합한 서킷을 찾는 일을 맡았다. 막힌 도로는 주민들에게 불편을 주므로, 막아야 하는 교차로 수를 최소로 줄이고 싶어 한다.

그림 F.1: 두 번째 입력의 시각화. 최적의 서킷 중 하나는 (4,5,7,6)(4,5,7,6)이다.

여러분이 할 일은 원을 이루는 도로 구간을 골라, 그 구간이 닿는 교차로를 가능한 한 적게 만드는 것이다. Flatland의 도로는 모두 양방향이지만, 안전을 위해 레이스 중에는 한 방향으로만 달릴 수 있다.

입력

첫 줄에 교차로 수 nn과 도로 구간 수 mm이 주어진다 (4≤n≤1054\leq n \leq 10^5, 5≤m≤3⋅1055\leq m \leq 3\cdot 10^5).

이어서 nn개의 줄에 교차로의 위치 xx, yy가 주어진다 (0≤x,y≤1090\leq x,y\leq 10^9). 같은 위치에 있는 교차로는 없다.

이어서 mm개의 줄에 aa와 bb가 주어진다 (1≤a,b≤n1\leq a,b\leq n, a≠ba\neq b). 이는 aa번 교차로와 bb번 교차로가 도로 구간으로 연결되어 있다는 뜻이다. 두 교차로를 잇는 도로 구간은 최대 하나다.

도로 구간끼리는 두 구간이 모두 시작하거나 끝나는 교차로에서만 교차한다. 또한 모든 교차로에는 도로 구간이 적어도 3개 모여 있다.

출력

필요한 교차로 수의 최솟값을 나타내는 정수 하나를 출력한다.

예제2

  1. 예제 1

    입력
    4 6
    0 0
    3 0
    0 3
    1 1
    1 2
    1 3
    1 4
    2 3
    2 4
    3 4
    
    예상 출력
    3
    
  2. 예제 2

    입력
    10 15
    1 5
    2 1
    3 4
    4 2
    5 3
    6 2
    7 3
    8 1
    9 4
    11 5
    1 2
    1 3
    1 10
    2 4
    3 5
    4 5
    4 6
    5 7
    6 7
    6 8
    7 9
    8 10
    9 10
    2 8
    3 9
    
    예상 출력
    4