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

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

코흐 곡선의 위와 아래

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

요약
주어진 레벨의 코흐 곡선을 기준으로 각 질의점이 곡선 위쪽에 있는지 아래쪽에 있는지 판정합니다.
난이도

보통10점 중 6점

유형
재귀, 기하, 분할 정복
정답자
아직 제출이 없습니다

문제

XY 평면에 코흐 곡선을 그린다. 코흐 곡선은 재귀적으로 정의한다.

(0,0)(0,0)에서 (1,0)(1,0)까지 길이가 1인 선분에서 시작한다. 이 선분을 레벨 0 코흐 곡선이라고 부른다.

선분을 삼등분하고 가운데 부분을 한 변으로 하는 정삼각형을 그린 다음, 그 삼각형의 밑변을 지운다. 이렇게 얻은 곡선이 레벨 1 코흐 곡선이다.

레벨 1 곡선을 이루는 네 선분에 같은 치환을 다시 적용하면 레벨 2 곡선이 된다.

같은 방식을 반복해 더 높은 레벨을 만든다. 위 그림은 레벨 4 곡선이다.

곡선은 (0,0)(0,0)에서 출발해 (1,0)(1,0)에서 끝난다. 정삼각형은 각 선분을 시작점에서 끝점 쪽으로 따라갈 때 항상 진행 방향의 왼쪽에 그린다.

XY 평면에서 X=0X=0과 X=1X=1 사이의 띠를 생각하자. 코흐 곡선은 이 띠를 위쪽 부분과 아래쪽 부분으로 나눈다. 점 (x,y)(x, y)가 주어질 때(0<x<10 < x < 1) 주어진 레벨의 코흐 곡선을 기준으로 이 점이 어느 쪽에 있는지 판정하라.

입력

첫째 줄에 판정할 점의 개수 NN이 주어진다(N>0N > 0). 다음 NN개 줄에 각각 LL, XX, YY가 주어진다. LL은 곡선의 레벨을 나타내는 정수로 0≤L≤100 \le L \le 10이다. XX와 YY는 실수이고 0<X<10 < X < 1, −10<Y<10-10 < Y < 10이다.

출력

점마다 한 줄씩, 위쪽 부분에 있으면 Above를, 아래쪽 부분에 있으면 Below를 출력한다. 곡선 위에 정확히 놓이는 점은 입력에 없다. 모든 점은 곡선에서 가장 가까운 선분과 적어도 0.00000010.0000001 정도 떨어져 있다.

예제4

  1. 예제 1

    입력
    8
    1 0.2 0.1
    1 0.5 0.1
    1 0.8 0.1
    1 0.5 -0.1
    2 0.1 0.05
    2 0.166 0.05
    2 0.25 0.05
    2 0.33 0.1
    
    예상 출력
    Above
    Below
    Above
    Below
    Above
    Below
    Above
    Above
    
  2. 예제 2

    입력
    6
    0 0.5 0.0001
    0 0.5 -0.0001
    0 0.0001 9.999999
    0 0.999999 -9.999999
    0 0.25 -0.5
    0 0.75 0.5
    
    예상 출력
    Above
    Below
    Above
    Below
    Below
    Above
    
  3. 예제 3

    입력
    6
    1 0.4 0.05
    1 0.4 0.2
    1 0.3323 0.05
    1 0.5 0.3
    1 0.5 0.28
    1 0.9 -0.0001
    
    예상 출력
    Below
    Above
    Above
    Above
    Below
    Below
    
  4. 예제 4

    입력
    11
    0 0.35 0.05
    1 0.35 0.05
    2 0.35 0.05
    3 0.35 0.05
    4 0.35 0.05
    5 0.35 0.05
    6 0.35 0.05
    7 0.35 0.05
    8 0.35 0.05
    9 0.35 0.05
    10 0.35 0.05
    
    예상 출력
    Above
    Above
    Above
    Below
    Below
    Below
    Below
    Below
    Below
    Below
    Below