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

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

로봇 레이스

시간 제한2초메모리 제한256 MB

요약
주어진 꺾은선 경로가 이후 지점까지의 직선거리를 이동 내내 줄이는지 판정합니다.
난이도

보통10점 중 7점

유형
기하, 완전 탐색
정답자
아직 제출이 없습니다

문제

로봇 경기는 조직위원회가 미리 정해 둔 경로를 따라 진행한다. 모든 로봇은 경로의 첫 점에서 출발해 경로를 벗어나지 않고 따라가다가 마지막 점에서 멈춘다.

경로 위의 한 점에는 충전소가 있다. 로봇마다 충전소까지의 직선거리를 알려 주는 장치가 달려 있다. 이 장치는 경로를 따라 남은 거리를 알려 주지 않는다.

일부 로봇의 제어 소프트웨어에는 버그가 있다. 버그가 있는 로봇은 장치에 표시된 값을 경로를 따라 남은 거리로 해석하므로, 충전소에 도착할 때까지 그 값이 계속 줄어든다고 기대한다. 값이 커지는 순간 로봇은 충전하지 못한 채 충전소를 이미 지나쳤다고 판단하고 고장 난다.

시각 tt에서 로봇의 위치를 p(t)p(t)라 하고, 두 점 aa와 bb 사이의 직선거리를 ∣ab∣|ab|라 하자. 경로 위의 어떤 점에 충전소를 두면 버그가 있는 로봇이 도중에 고장 나는 경우, 즉 t1<t2<t3t_1 < t_2 < t_3인 세 시각이 있어 로봇이 시각 t3t_3에 충전소에 있고

∣p(t1) p(t3)∣<∣p(t2) p(t3)∣|p(t_1)\,p(t_3)| < |p(t_2)\,p(t_3)|

을 만족하는 경우, 그 경로를 불공정하다고 한다. 불공정하지 않은 경로는 공정하다. 조직위원회는 후보 경로 목록을 두고 그중 어느 것이 공정한지 알고 싶다. 주어진 경로마다 공정한지 판정하라.

입력

입력에는 테스트 케이스가 여러 개 있다. 각 테스트 케이스의 첫 줄에는 경로를 이루는 점의 개수 nn (1≤n≤10 0001 \le n \le 10\,000)이 주어진다. 다음 nn개의 줄에는 점의 좌표를 나타내는 두 정수 xx와 yy (−106≤x≤106-10^6 \le x \le 10^6, −106≤y≤106-10^6 \le y \le 10^6)가 주어진다. 이 중 ii번째 줄이 경로의 ii번째 점이다. 로봇은 첫 점에서 출발해 이웃한 두 점을 잇는 선분을 차례로 지나 마지막 점에서 멈춘다. 경로는 자기 자신과 만나지 않는다. 입력의 마지막 줄에는 0 하나만 주어지고, 이 줄은 테스트 케이스가 아니다.

출력

테스트 케이스마다 한 줄을 출력한다. 경로가 공정하면 Fair, 공정하지 않으면 Unfair를 출력한다.

예제3

  1. 예제 1

    입력
    5
    5 5
    15 5
    25 15
    15 25
    5 25
    4
    0 0
    1 0
    2 1
    3 0
    0
    
    예상 출력
    Unfair
    Fair
    
  2. 예제 2

    입력
    3
    0 0
    10 0
    10 10
    3
    0 0
    10 0
    9 10
    0
    
    예상 출력
    Fair
    Unfair
    
  3. 예제 3

    입력
    1
    7 -3
    2
    -1000000 -1000000
    1000000 1000000
    0
    
    예상 출력
    Fair
    Fair