경찰은 근무 중에 아주 위험한 상황에 놓이기도 한다. IMF와 세계은행 총회 때처럼 큰 시위대를 막아서는 자리라면 더 그렇다. 부상을 되도록 막으려고 경찰관은 모두 안전 지침을 하나 지급받는다. 이름은 비상 밀집 상황 대응 지침, 줄여서 SMRT다.
시위대가 던진 물건이 날아올 때 앞줄 경찰관은 몸을 피했는데 앞이 가려 아무것도 못 본 뒷사람이 그대로 맞는 일이 잦았다. 그래서 시위대의 진로를 막는 경찰관에게 내려온 지침 하나는, 보도블록 같은 큰 물건의 손쉬운 표적이 되지 않도록 경찰관이 한 줄로 서 있으면 안 된다고 정한다. 지침은 지켜야 하니 지켜지는지 확인해야 하고, 위반은 곧바로 보고해야 한다. 지휘관이 모든 현장에 있을 수는 없으므로 경찰에는 위반을 스스로 찾아내는 도구가 필요하다. 그 도구를 만드는 것이 이번 과제다.
현장마다 카메라가 한 대씩 경찰 저지선을 위에서 찍는다. 그래서 경찰관 한 명마다 가상의 좌표계 위 좌표를 붙일 수 있다. 경찰관은 정수 쌍 X, Y 하나로 유일하게 구분되고 0≤X,Y≤9999이다. 모서리 자리는 전술적으로 불리해서 좌표 (0,0)에 서는 경찰관은 없다.
저지선에 선 경찰관의 좌표를 읽어 한 직선 위에 경찰관이 셋 이상 서 있는 곳이 있는지 찾는 프로그램을 작성하라. 이 규정은 생긴 지 얼마 되지 않아 아직 몸에 배지 않았으므로 경찰관이 셋 이상 놓인 직선이 여럿일 수도 있다. 다만 사기가 높고 훈련이 잘 되어 있어서 한 직선 위에 열 명을 넘게 서는 일은 없다고 봐도 된다.
입력은 데이터 여러 개로 이루어진다. 각 데이터는 새 줄에서 시작하고, 점 3개 이상 300개 이하의 좌표로 이루어지며, 0 0 한 쌍으로 끝난다. 점 하나는 0 이상 9999 이하의 정수 두 개로 주어진다. 데이터 하나가 여러 줄에 나뉠 수 있지만 좌표 한 쌍이 줄로 쪼개지는 일은 없고, 줄바꿈은 항상 좌표 쌍과 좌표 쌍 사이에 온다. 전체 입력은 0 0 한 쌍이 한 번 더 나오면서 끝난다.
한 직선 위에 선 경찰관 셋이 하나도 없으면 Smernice byla dodrzena. 한 줄을 출력한다. 그렇지 않으면 Tito policiste porusuji smernici:를 먼저 출력하고, 이어지는 각 줄에 한 직선 위에 선 경찰관을 모두 적는다. 경찰관이 셋 이상 있는 직선은 하나도 빠뜨리지 말고 이렇게 적어야 한다. 한 줄 안의 좌표는 x좌표로 먼저 정렬하고, x가 같으면 y좌표로 정렬한다. 점은 모두 괄호로 감싸고 두 성분은 쉼표로 구분하며 공백은 넣지 않는다. 점과 점 사이에는 괄호 말고 다른 구분 기호를 넣지 않는다. 줄의 순서도 줄 안의 좌표 순서와 같은 방식으로 정한다. 첫 점으로 정렬하고, 첫 점이 같으면 두 번째 점, 세 번째 점을 차례로 비교한다. 경찰관 한 명이 여러 줄에 나올 수 있다. 각 데이터 뒤에는, 마지막 데이터 뒤에도, 빈 줄을 하나 출력한다.