강도
시간 제한1초메모리 제한128 MB
시간별로 주어진 직사각형 관측 정보를 이용해, 한 칸 이하로 움직이는 도둑의 위치가 각 시각에 유일하게 정해지는지 판별한다.
문제
로브스톱 경위는 몹시 화가 났습니다. 어젯밤 은행이 털렸지만 범인은 아직 잡히지 않았고, 올해 들어 벌써 세 번째 사건입니다. 경위는 범인을 막기 위해 할 수 있는 모든 일을 했습니다. 도시 밖으로 나가는 모든 도로를 최대한 빨리 봉쇄해 범인이 탈출하지 못하게 만들었고, 모든 시민에게 범인을 감시해 달라고 부탁했습니다. 하지만 돌아온 제보는 "여기에는 없습니다."라는 내용뿐이었습니다.
이번에는 경위도 더 이상 참지 않기로 했습니다. 그는 범인이 어떻게 빠져나갈 수 있었는지 분석하려 하며, 여러분에게 프로그램 작성을 부탁합니다. 이 프로그램은 경위가 모은 모든 정보를 입력받아, 범인이 각 시각에 어디에 있었는지 알아내야 합니다.
우연히도 은행이 털린 도시는 직사각형 모양입니다. 도로는 일정 시간 동안 봉쇄되며, 그동안 "시각 에 범인은 직사각형 안에 없었다"라는 형태의 관측이 여러 건 보고됩니다. 범인이 한 시간 단위마다 최대 한 칸만 움직일 수 있다고 가정할 때(제자리에 머물거나 상·하·좌·우 네 방향 중 한 칸으로 이동), 여러분의 프로그램은 각 시각마다 범인의 정확한 위치를 알아낼 수 있는 경우 그 위치를 구해야 합니다.
입력
입력은 여러 건의 사건(robbery) 설명으로 이루어집니다.
각 사건의 첫 줄에는 세 정수 , , ()가 주어집니다. 는 도시의 너비, 는 높이, 는 도시가 봉쇄되는 시간입니다. 도시는 격자이며, 점 이 왼쪽 위, 점 가 오른쪽 아래 모서리입니다.
다음 줄에는 경위가 받은 제보의 수를 나타내는 정수 ()이 주어집니다. 이어지는 개의 줄에는 각 제보에 대해 다섯 정수 , , , , 가 주어집니다. 는 관측이 이루어진 시각()이고, , , , 는 각각 관측된 직사각형 영역의 왼쪽, 위, 오른쪽, 아래 경계입니다(, ). 이 제보는 시각 에 범인이 해당 직사각형(열 , 행 ) 안에 없었음을 의미합니다.
입력은 인 사건으로 끝나며, 이 경우는 처리하지 않습니다.
출력
각 사건마다 먼저 "Robbery #k:" 줄을 출력합니다. 여기서 는 사건의 번호(1부터 시작)입니다. 그다음에는 세 가지 경우가 있습니다.
제보들을 고려할 때 범인이 여전히 도시 안에 있는 것이 불가능하다면, "The robber has escaped." 줄을 출력합니다.
그 외의 모든 경우에는 범인이 실제로 도시 안에 있다고 가정합니다. 정확한 위치를 알아낼 수 있는 각 시각에 대해 "Time step i: The robber has been at x,y." 형태의 줄을 하나씩 출력합니다. 여기서 는 시각, 는 열, 는 행입니다. 이 줄들은 시각 의 오름차순으로 출력합니다.
아무것도 알아낼 수 없다면 "Nothing known." 줄을 출력하고, 경위가 더 화내지 않기를 바랍니다.
각 사건을 처리한 뒤에는 빈 줄을 하나 출력합니다.