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

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

개미

시간 제한1초메모리 제한256 MB

요약
번호가 붙은 의자가 있는 격자와 개미집이 주어질 때, 매초 한 마리씩 나와 정해진 의자로 향하는 개미들이 각 초에 몇 마리씩 소멸하는지 구한다.
난이도

보통10점 중 5점

유형
BFS, 그래프, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

보물찾기는 기발한 사고가 필요한 도전이다. 자, 창의력을 최대로 끌어올릴 게임 <<개미>>를 보라!

게임은 n×mn \times m 크기의 필드에서 진행되며, 일부 칸에는 의자가 있다. 필드 어딘가에는 개미집도 있다. 첫 번째 초부터 개미들이 1초에 한 마리씩 기어 나와 각자 가장 좋아하는 의자를 향한다. 개미들은 최단 경로로 이동하며, 한 칸에서 이웃한 칸으로 이동하는 데 1초가 걸린다. 두 칸은 변을 공유하면 이웃한 것으로 본다. 가장 좋아하는 의자에 도착한 개미는 기쁨에 몸이 터져 사라진다. 플레이어는 매초 몇 마리의 개미가 죽는지 지켜보고 세기만 하면 된다.

개미는 아주 작은 생물이라 의자가 이동을 전혀 방해하지 않는다. 의자는 개미집이 있는 칸을 포함해 게임 필드의 어떤 칸에든 있을 수 있다.

입력

입력 파일의 첫 줄에는 다섯 정수 nn, mm, kk, rr, cc가 주어진다. 각각 필드의 크기, 의자의 개수, 개미집의 좌표다 (1≤n,m≤1001 \le n, m \le 100, 1≤k≤n⋅m1 \le k \le n \cdot m, 1≤r≤n,1≤c≤m1 \le r \le n, 1 \le c \le m).

다음으로 필드의 설명이 주어진다. nn개의 줄과 mm개의 열로 이루어진 직사각형 표다. 표의 각 칸에는 음이 아닌 정수 ii가 들어 있다 (i≤ki \le k). i=0i = 0이면 빈 칸이고, 그렇지 않으면 번호 ii가 붙은 의자가 있다.

이 표에는 11부터 kk까지의 모든 정수가 한 번씩 나타난다. ii번째 초에 개미집에서 기어 나오는 개미가 가장 좋아하는 의자의 번호는 ii다.

출력

출력 파일의 첫 줄에는 개미가 몸이 터져 사라지는 사건의 수 ee를 출력한다. 다음 ee개의 줄에는 각 사건을 두 정수로 설명한다. 즉 그 초의 번호와 그 초 동안 사라진 개미의 수다. 시간은 엄격히 증가해야 하고, 각 사건의 개미 수는 양수여야 한다.

예제1

  1. 예제 1

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