만드는 중입니다

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

줄넘기

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

요약
우경이는 S에서 출발해 일정한 속도로 평행 이동하는 N개의 로프를 넘으며 멈출 지점에 도착합니다. 넘는 횟수의 최솟값을 구합니다.
난이도

어려움10점 중 8점

유형
기하, 정렬, 구현
정답자
아직 제출이 없습니다

문제

우경이는 NN개의 밧줄로 줄넘기를 한다. 각 밧줄은 평면 위의 직선으로 나타낼 수 있으며, 일정한 속도로 평행이동하고 있다. 어떤 두 밧줄도 서로 평행하거나 일치하지 않는다.

우경이는 평면에서 어떤 밧줄도 지나지 않는 위치 SS에서 줄넘기를 시작하며, 줄넘기를 하는 동안 원하는 경로와 속도로 자유롭게 이동할 수 있다. 이동 도중에 밧줄을 만날 때마다 밧줄을 한 번 넘은 것으로 센다. 한 번에 두 개 이상의 밧줄을 넘을 수는 없다.

우경이는 일정한 시간이 지나면 줄넘기를 멈출 것이다. 멈추기 전까지 밧줄을 넘는 횟수가 최소가 되도록 이동하고자 한다. 줄넘기를 멈췄을 때 우경이의 위치는 밧줄이 지나지 않는 곳이어야 하며, 시작한 위치와 달라도 된다. 우경이가 넘어야 하는 밧줄 횟수의 최솟값을 구하라.

입력

첫 번째 줄에 밧줄의 수 NN이 주어진다.

두 번째 줄에 두 정수 XX, YY가 주어진다. 우경이의 시작 위치 좌표가 S=(X,Y)S=(X,Y)임을 나타낸다.

세 번째 줄부터 NN개의 줄에 밧줄의 정보를 나타내는 여섯 개의 정수 x1x_1, y1y_1, x2x_2, y2y_2, aa, bb가 주어진다. 우경이가 줄넘기를 시작했을 때 밧줄은 (x1,y1)(x_1,y_1)과 (x2,y2)(x_2,y_2)를 잇는 직선이고, 우경이가 줄넘기를 멈출 때까지 밧줄은 (a,b)(a,b)만큼 평행이동한다.

출력

우경이가 줄넘기를 멈추기 전까지 밧줄을 넘어야 하는 횟수의 최솟값을 출력한다.

제한

  • 1≤N≤2 0001\leq N\leq 2\,000
  • ∣X∣,∣Y∣,∣x1∣,∣y1∣,∣x2∣,∣y2∣,∣a∣,∣b∣≤1 000|X|,|Y|,|x_1|,|y_1|,|x_2|,|y_2|,|a|,|b|\leq 1\,000
  • (x1,y1)≠(x2,y2)(x_1,y_1)\neq(x_2,y_2)
  • 우경이가 줄넘기를 시작했을 때, SS는 평면상에서 밧줄 위에 있지 않다.
  • 어떤 두 밧줄도 서로 평행하거나 일치하지 않는다.

예제3

  1. 예제 1

    입력
    3
    2 2
    0 1 1 1 0 0
    1 0 1 1 0 0
    5 0 0 5 -3 -2
    
    예상 출력
    1
    
  2. 예제 2

    입력
    5
    0 0
    -1 2 1 2 0 -3
    1 2 2 0 -3 -3
    2 0 0 -2 -3 3
    0 -2 -2 0 3 3
    -2 0 -1 2 3 -3
    
    예상 출력
    2
    
  3. 예제 3

    입력
    3
    2 2
    0 1 1 1 0 0
    1 0 1 1 0 0
    5 0 0 5 -2 -1
    
    예상 출력
    1