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

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

소나기

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

요약
Q일 동안 비가 내려 칸의 높이가 낮아진다. 각 날마다 비가 내린 칸과 물로 연결된 영역에서 높이가 가장 낮은 칸을, 높이가 같으면 가장 먼저 비를 맞은 칸을 출력한다.
난이도

어려움10점 중 8점

유형
유니온 파인드, 시뮬레이션, 구현, 정렬
정답자
아직 제출이 없습니다

문제

신촌에는 N×MN \times M 크기의 신촌평야가 있다. 이 신촌평야에 QQ일간 소나기가 온다. 신촌평야의 좌측 상단 좌표는 (1,1)(1, 1)이며, 우측 하단 좌표는 (N,M)(N, M)이다.

소나기는 (a,b)(a, b) 칸에 내리며, 내린 후에는 땅의 높이가 cc만큼 감소하고 해당 칸에 물이 남는다. 땅의 높이는 음수가 될 수 있다.

인접한 칸에 물이 있다면 각 칸의 물이 연결된다. 각 칸이 한 개의 변을 공유하면 두 칸이 인접한다고 한다.

신촌평야 관리본부는 수질검사를 위해 소나기가 내린 후 그 지점에 수질 검사 로봇을 설치한다. 이 로봇은 연결된 물을 따라 자유롭게 이동하다가 높이가 가장 낮은 칸에서 검사를 마친다. 높이가 가장 낮은 칸이 여러 개라면 비가 내린 지 가장 오래된 칸에서 검사를 마친다.

QQ일간 소나기가 내릴 곳이 주어질 때, 각 날짜마다 로봇이 검사를 마치는 지점을 출력하는 프로그램을 만들어 보자.

입력

첫 번째 줄에 공백을 기준으로 NN (1≤N≤1 0001 \le N \le 1\,000), MM (1≤M≤1 0001 \le M \le 1\,000), QQ (1≤Q≤100 0001 \le Q \le 100\,000)가 정수로 주어진다.

두 번째 줄부터 N+1N+1 번째 줄까지 신촌평야 각 칸의 높이 HH (0≤Ha,b≤1 0000 \le H_{a, b} \le 1\,000)가 정수로 주어진다.

N+2N+2 번째 줄부터 N+Q+1N+Q+1 번째 줄까지 순서대로 비가 올 칸의 좌표 aa (1≤a≤N1 \le a \le N), bb (1≤b≤M1 \le b \le M), 땅의 높이가 감소하는 정도 cc (1≤c≤1001 \le c \le 100)가 정수로 주어진다.

출력

각 날짜마다 로봇이 검사를 마치는 지점의 좌표를 한 줄씩 차례대로 출력한다.

힌트

다음은 예제 1번의 그림이다.

예제2

  1. 예제 1

    입력
    2 3 5
    9 9 9
    9 9 9
    1 1 1
    1 2 2
    2 2 2
    1 1 5
    1 2 1
    
    예상 출력
    1 1
    1 2
    1 2
    1 1
    1 1
    
  2. 예제 2

    입력
    4 5 14
    0 9 9 9 9
    9 9 0 0 0
    0 9 0 0 0
    0 9 9 9 0
    1 4 1
    1 3 1
    1 2 1
    1 5 2
    4 3 1
    4 2 1
    3 2 1
    4 4 2
    2 1 2
    2 2 1
    2 2 1
    1 2 1
    1 2 1
    1 5 1
    
    예상 출력
    1 4
    1 4
    1 4
    1 5
    4 3
    4 3
    4 3
    4 4
    2 1
    1 5
    1 5
    1 5
    1 2
    1 2