도형 교차 판별
시간 제한1초메모리 제한128 MB
정사각형, 직사각형, 선분, 삼각형, 다각형을 최대 26개까지 입력받아, 각 도형의 경계가 닿거나 교차하는 다른 도형을 모두 찾아 출력한다.
문제
한 디자인 도구는 로고를 여러 기하 도형의 모음으로 그리며, 이 도형들은 나중에 특수 형광 소재로 잘라내어 만듭니다. 재단이 제대로 되려면 한 그림 안의 도형들이 서로 교차하지 않아야 합니다. 그러나 일부 로고에는 교차하는 도형이 들어 있으므로, 이를 찾아내야 합니다.
여러 기하 도형이 주어질 때, 각 도형이 어떤 다른 도형들과 교차하는지 판별하세요. 오직 도형의 윤곽선(경계)만을 고려합니다. 즉, 두 도형은 그 윤곽선이 적어도 한 점을 공유할 때(서로 가로지르거나 맞닿을 때)에만 교차한다고 봅니다. 특히 한 도형이 다른 도형의 내부에 완전히 들어 있고 두 윤곽선이 맞닿지 않는다면, 이는 교차가 아닙니다.

입력
입력은 여러 개의 그림으로 이루어집니다. 각 그림은 최대 26개의 도형을 한 줄에 하나씩 기술합니다. 각 줄은 그림 안에서 도형을 유일하게 식별하는 대문자 하나로 시작하고, 이어서 도형의 종류와 두 개 이상의 점이 오며, 모든 항목은 최소 한 칸 이상의 공백으로 구분됩니다. 가능한 도형의 종류는 다음과 같습니다.
- square — 정사각형의 마주 보는 두 꼭짓점(대각선의 양 끝점)을 나타내는 서로 다른 두 점.
- rectangle — 세 점. 첫 번째 점에서 두 번째 점을 잇는 선분과 두 번째 점에서 세 번째 점을 잇는 선분이 이루는 두 번째 점에서의 각은 항상 직각입니다.
- line — 서로 다른 두 끝점으로 주어지는 선분.
- triangle — 한 직선 위에 있지 않음이 보장되는 세 점.
- polygon — 정수 () 뒤에 다각형의 꼭짓점을 시계 방향 또는 반시계 방향 순서로 나열한 개의 점. 다각형은 자기 자신과 교차하지 않으며 모든 변의 길이는 0이 아닙니다.
모든 점은 정수 좌표 와 를 쉼표로 구분하여 괄호로 감싼 (X,Y) 형태로 주어집니다. 모든 좌표는 을 만족합니다.
각 그림의 기술은 하이픈 하나(-)만 있는 줄로 끝납니다. 마지막 그림 다음에는 마침표 하나(.)만 있는 줄이 옵니다.
출력
각 그림마다 모든 도형에 대해 그 식별자 기준 알파벳 순서로 한 줄씩 출력합니다. 각 줄은 다음 형식 중 하나여야 합니다.
X has no intersections— 가 다른 어떤 도형과도 교차하지 않는 경우.X intersects with A— 가 정확히 하나의 다른 도형 와 교차하는 경우.X intersects with A and B— 가 정확히 두 개의 다른 도형과 교차하는 경우.X intersects with A, B, ..., and Z— 가 두 개보다 많은 도형과 교차하는 경우(and앞에 쉼표가 추가로 붙는 점에 유의하세요).
나열되는 식별자들은 교차하는 도형들을 알파벳 순으로 정렬한 것입니다.
연속한 두 그림의 출력 사이에는 빈 줄을 하나 넣어 구분합니다.