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

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

삼각형 동치 변형

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

요약
넓이가 같은 두 삼각형이 주어질 때, 첫 번째를 두 번째에 정확히 포갤 수 있는 최소 연산 수를 구한다.
난이도

어려움10점 중 9점

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

문제

평면 위에 넓이가 같은 두 삼각형 T1T_1과 T2T_2가 있다. 아래 연산을 T1T_1에 여러 번 적용해서 T1T_1을 T2T_2에 정확히 겹쳐야 한다. 이때 T1T_1의 꼭짓점은 T2T_2의 어느 꼭짓점 위에 놓여도 된다. T1T_1을 T2T_2에 겹치는 데 필요한 연산의 최소 횟수를 구하라.

연산: 삼각형의 꼭짓점 하나를 고르고, 그 꼭짓점을 지나면서 마주 보는 변과 평행한 직선 위의 임의의 점으로 옮긴다.

연산 예시

연산 예시

아래 그림은 예제 입력의 첫 번째 데이터셋을 푸는 연산 순서 하나다.

연산 순서 예시

입력

입력은 최대 2000개의 데이터셋으로 이루어지고, 각 데이터셋의 형식은 다음과 같다.

x11 y11
x12 y12
x13 y13
x21 y21
x22 y22
x23 y23

xijx_{ij}와 yijy_{ij}는 TiT_i의 jj번째 꼭짓점의 xx좌표와 yy좌표다.

각 데이터셋은 다음 조건을 만족한다.

  • 모든 좌표는 절댓값이 1000 이하인 정수다.
  • T1T_1과 T2T_2의 넓이는 서로 같고 0보다 크다.
  • 주어지는 여섯 꼭짓점은 모두 서로 다른 점이다.

데이터셋 사이에는 빈 줄이 하나씩 놓인다. 입력은 파일 끝에서 끝난다.

출력

각 데이터셋마다 필요한 연산의 최소 횟수를 한 줄에 출력한다. 연산이 다섯 번 이상 필요하면 횟수 대신 Many를 출력한다.

꼭짓점을 옮긴 뒤의 좌표는 정수가 아니어도 된다.

위 조건을 만족하는 모든 입력에서 필요한 연산 횟수가 어떤 상수 이하임을 증명할 수 있다.

예제2

  1. 예제 1

    입력
    0 1
    2 2
    1 0
    1 3
    5 2
    4 3
    
    0 0
    0 1
    1 0
    0 3
    0 2
    1 -1
    
    -5 -4
    0 1
    0 15
    -10 14
    -5 10
    0 -8
    
    -110 221
    -731 525
    -555 -258
    511 -83
    -1000 -737
    66 -562
    
    533 -45
    -525 -450
    -282 -667
    -439 823
    -196 606
    -768 -233
    
    0 0
    0 1
    1 0
    99 1
    100 1
    55 2
    
    354 -289
    89 -79
    256 -166
    131 -196
    -774 -809
    -519 -623
    
    -990 688
    -38 601
    -360 712
    384 759
    -241 140
    -59 196
    
    629 -591
    360 -847
    936 -265
    109 -990
    -456 -913
    -787 -884
    
    -1000 -1000
    -999 -999
    -1000 -998
    1000 1000
    999 999
    1000 998
    
    -386 -83
    404 -83
    -408 -117
    -162 -348
    128 -88
    296 -30
    
    -521 -245
    -613 -250
    797 451
    -642 239
    646 309
    -907 180
    
    -909 -544
    -394 10
    -296 260
    -833 268
    -875 882
    -907 -423
    
    예상 출력
    4
    3
    3
    3
    3
    4
    4
    4
    4
    Many
    Many
    Many
    Many
    
  2. 예제 2

    입력
    0 0
    1 0
    0 1
    -1 1
    3 0
    4 0
    
    0 0
    1 0
    0 1
    5 5
    6 5
    5 6
    
    -2 -3
    4 1
    0 5
    10 9
    4 5
    8 1
    
    예상 출력
    3
    Many
    Many