엄격하게 내접하는 닮은 삼각형

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

요약
각 삼각형과 각도 세타가 주어질 때, 주어진 삼각형과 순서대로 닮음이고 한 변이 세타의 각도를 이루는 내접 삼각형의 개수를 센다.
난이도

어려움10점 중 8점

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

문제

두 삼각형 ABCABC와 XYZXYZ는 대응하는 변의 길이가 서로 비례하면(동치로, 대응하는 각이 서로 같으면) 닮음입니다. AA가 XX에, BB가 YY에, CC가 ZZ에 대응할 때 ABCABC와 XYZXYZ가 순서대로 닮음이라고 합니다. 즉,

∣AB∣∣XY∣=∣BC∣∣YZ∣=∣AC∣∣XZ∣\frac{|AB|}{|XY|} = \frac{|BC|}{|YZ|} = \frac{|AC|}{|XZ|}

이며, 여기서 ∣MN∣|MN|은 점 MM에서 점 NN까지의 선분 길이를 뜻합니다.

삼각형 XYZXYZ의 세 꼭짓점이 각각 삼각형 ABCABC의 서로 다른 변의 내부(꼭짓점이 아닌 곳)에 놓이면, XYZXYZ가 ABCABC에 엄격하게 내접한다고 합니다. 이는 XYZXYZ의 어떤 변도 ABCABC의 한 변에 포함될 수 없음을 뜻합니다. XYZXYZ가 ABCABC와 순서대로 닮았고 ABCABC에 엄격하게 내접하면, XYZXYZ를 ABCABC의 엄격하게 내접하는 닮은 삼각형이라고 부릅니다.

XX와 YY를 지나는 직선이 AA와 BB를 지나는 직선과 이루는 각이 θ\theta일 때, 아래 그림처럼 네 가지 방향이 가능합니다. XX와 YY는 선분의 양 끝 중 어느 쪽에나 올 수 있고, 세 번째 꼭짓점 ZZ는 직선의 어느 쪽에나 있을 수 있습니다. 그림에서 XX와 YY를 지나는 직선은 AA와 BB를 지나는 직선과 30∘30^\circ의 각을 이룹니다.

바깥 삼각형 ABCABC의 모양과, X,YX, Y를 지나는 직선이 A,BA, B를 지나는 직선과 이루는 각 θ\theta에 따라, 각 θ\theta를 갖는 ABCABC의 엄격하게 내접하는 닮은 삼각형은 0, 1, 2, 3, 또는 4개가 있을 수 있습니다.

삼각형 ABCABC의 세 꼭짓점과 각 θ\theta가 주어질 때, XX와 YY를 지나는 직선이 AA와 BB를 지나는 직선과 각 θ\theta를 이루는, ABCABC에 엄격하게 내접하는 닮은 삼각형이 몇 개인지 구하세요.

입력

첫 번째 줄에는 뒤이어 주어지는 삼각형 데이터셋의 개수인 양의 정수 nn이 주어집니다. 각 데이터셋은 네 줄로 이루어집니다. 첫 번째 줄에는 꼭짓점 AA의 xx, yy 좌표가, 두 번째 줄에는 꼭짓점 BB의 xx, yy 좌표가, 세 번째 줄에는 꼭짓점 CC의 xx, yy 좌표가, 네 번째 줄에는 X,YX, Y를 지나는 직선이 A,BA, B를 지나는 직선과 이루는 각 θ\theta(도 단위)가 주어집니다.

출력

각 데이터셋에 대해, XX와 YY를 지나는 직선이 AA와 BB를 지나는 직선과 각 θ\theta를 이루는, ABCABC에 엄격하게 내접하는 닮은 삼각형의 개수를 정수 하나로 한 줄에 출력하세요.

예제7

  1. 예제 1

    입력
    2
    0 0
    21 0
    14 6
    30
    0 0
    21 0
    14 6
    50
    
    예상 출력
    2
    1
    
  2. 예제 2

    입력
    1
    0 0
    21 0
    14 6
    15
    
    예상 출력
    4
    
  3. 예제 3

    입력
    1
    0 0
    21 0
    14 6
    80
    
    예상 출력
    0
    
  4. 예제 4

    입력
    1
    0 0
    21 0
    14 6
    150
    
    예상 출력
    3
    
  5. 예제 5

    입력
    1
    0 0
    21 0
    14 6
    55
    
    예상 출력
    1
    
  6. 예제 6

    입력
    1
    0 0
    10 0
    3 8
    40
    
    예상 출력
    4
    
  7. 예제 7

    입력
    5
    0 0
    21 0
    14 6
    15
    0 0
    21 0
    14 6
    35
    0 0
    21 0
    14 6
    55
    0 0
    21 0
    14 6
    80
    0 0
    21 0
    14 6
    150
    
    예상 출력
    4
    2
    1
    0
    3