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

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

맨해튼에서의 조깅

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

요약
t분마다 맨해튼 거리 d 이내의 위치를 알려주는 내비게이터 기록이 주어질 때, 마지막 시각에 미샤가 있을 수 있는 모든 격자점을 구한다.
난이도

보통10점 중 6점

유형
수학, 기하, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

뉴맨해튼의 도로는 다음과 같이 배치되어 있다. 남쪽에서 북쪽으로 100미터마다 애비뉴가 지나가고, 서쪽에서 동쪽으로 100미터마다 스트리트가 지나간다. 애비뉴와 스트리트에는 정수가 번호로 붙는다. 번호가 작을수록 서쪽 애비뉴와 남쪽 스트리트에 해당한다. 따라서 점 (x,y)(x, y)가 xx번 애비뉴와 yy번 스트리트의 교차점에 오도록 직교좌표계를 세울 수 있다. 뉴맨해튼에서 (x1,y1)(x_1, y_1)에서 (x2,y2)(x_2, y_2)까지 가려면 ∣x2−x1∣+∣y2−y1∣|x_2 - x_1| + |y_2 - y_1|개의 블록을 지나야 한다는 사실은 쉽게 알 수 있다. 이 값을 두 점 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2) 사이의 맨해튼 거리라고 부른다.

미샤는 뉴맨해튼에 살면서 매일 아침 도시를 달린다. 그는 (0,0)(0, 0)에 있는 자기 집에서 나와 임의의 경로로 달린다. 매분 미샤는 1분 전과 같은 교차점에 그대로 머무르거나, 어느 방향으로든 한 블록 이동한다. 길을 잃지 않으려고 미샤는 내비게이터를 들고 나가는데, 내비게이터는 tt분마다 미샤가 어느 점에 있는지 알려 준다. 아쉽게도 내비게이터는 미샤의 정확한 위치를 보여 주지 않고, 미샤로부터 맨해튼 거리가 dd를 넘지 않는 점 중 아무 점이나 보여 줄 수 있다.

달리기를 시작한 지 t⋅nt\cdot n분이 지나고 내비게이터로부터 nn번째 메시지를 받은 미샤는 이제 집으로 달려갈 때라고 생각했다. 그러기 위해 그는 자신이 어느 점에 있을 수 있는지 알고 싶어 한다. 미샤를 도와주자.

입력

첫째 줄에 tt, dd, nn이 주어진다 (1≤t≤1001\le t\le 100, 1≤d≤1001\le d\le 100, 1≤n≤1001\le n\le 100).

다음 nn개 줄은 내비게이터에서 받은 데이터를 나타낸다. ii번째 줄에는 달리기를 시작한 지 t⋅it\cdot i분이 지났을 때 내비게이터에서 받은 데이터 xix_i, yiy_i가 주어진다.

출력

첫째 줄에 미샤가 있을 수 있는 점의 개수 mm을 출력한다. 다음 mm개 줄에 점의 좌표를 나타내는 두 수를 출력한다. 점은 임의의 순서로 출력해도 된다.

내비게이터는 정상이며 미샤가 있을 수 있는 점이 적어도 하나 존재함이 보장된다.

예제1

  1. 예제 1

    입력
    2 1 5
    0 1
    -2 1
    -2 3
    0 3
    2 5
    
    예상 출력
    2
    1 5
    2 4