다트
시간 제한2초메모리 제한1024 MB
볼록 다각형 과녁과 두 사람이 던진 점 목록이 주어질 때, 각자의 점수를 10^9+7로 나눈 나머지로 구하고 승자를 출력하는 문제입니다.
문제
영민이와 현빈이는 항상 저녁을 같이 먹는데, 메뉴를 두고 늘 의견이 엇갈린다. 그래서 공평하게 다트로 승부를 겨뤄 이긴 사람이 정한 메뉴를 따르기로 합의하였다. 두 사람은 다트를 잘 모르지만 프로그래밍을 좋아하므로, 아래와 같은 새로운 다트 규칙을 정의하였다.
- 다트 과녁은 볼록 각형이다. 과녁의 꼭짓점을 이루는 임의의 세 점은 일직선이 아니다.
- 다트가 과녁 내부에 명중하면, 과녁 넓이의 두 배만큼의 점수를 얻는다.
- 다트가 과녁 경계에 명중하면, 점수를 얻지 못한다.
- 다트가 과녁 내부에 명중하지 못하면, 다음과 같이 점수를 계산한다.
- 다트가 도달한 지점에서 과녁에 두 개의 접선을 그린다. 접선이 과녁의 두 꼭짓점에 접하는 경우, 다트에 가까운 점이 접점이 된다.
- 두 접점을 잇는 선분을 그린다.
- 선분으로 나뉜 과녁의 두 영역 중 넓이가 크지 않은 영역의 넓이의 두 배만큼의 점수를 얻는다.
영민이와 현빈이는 각각 다트를 번씩 던져 얻은 점수의 합을 로 나눈 나머지가 더 큰 사람이 승리한다.
입력
첫째 줄에 점의 개수 과 다트를 던지는 횟수 이 주어진다. (, )
둘째 줄부터 개의 줄에 걸쳐 과녁 꼭짓점의 x좌표와 y좌표가 공백으로 구분되어 주어진다. 점은 반시계 방향으로 주어진다.
번째 줄부터 개의 줄에 걸쳐 영민이가 던진 다트가 도달한 지점의 x좌표와 y좌표가 공백으로 구분되어 주어진다.
이어서 개의 줄에 걸쳐 현빈이가 던진 다트가 도달한 지점의 x좌표와 y좌표가 공백으로 구분되어 주어진다.
모든 좌표는 절댓값이 이하인 정수이다.
출력
첫째 줄에는 영민이가 이기면 "ym"을, 현빈이가 이기면 "hb"를, 두 점수가 같으면 "same"을 출력한다.
둘째 줄에는 영민이의 점수와 현빈이의 점수를 각각 로 나눈 나머지를 공백으로 구분하여 출력한다.