형제들

면접 대비

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

요약
여러 명의 상속인이 원형 순서로 맞물린 격자에서, 각 전투마다 상하좌우 이웃 중 이전 번호 상속인의 땅이 있으면 그 땅으로 바뀌는 규칙을 K번 적용한 뒤 격자를 출력한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 구현, 행렬, 배열
정답자
아직 제출이 없습니다

문제

어떤 왕이 직사각형 모양의 왕국을 다스리고 있었다. 왕은 죽기 전에 영토를 작은 직사각형 모양의 주(county) 들로 이루어진 격자로 나누고, 이를 아들들에게 나누어 주었다.

왕은 아들들 사이에 독특한 반목이 있다는 것을 알지 못했다. 상속자 00번은 11번을 미워하고, 11번은 22번을 미워하며, 이렇게 이어져 마지막 상속자 N−1N-1번은 00번을 미워했다. 각 상속자는 정확히 다른 한 명만 미워했으므로, 일반적으로 상속자 ii번은 상속자 (i+1) mod N(i+1) \bmod N번을 미워했다.

왕이 죽자 전쟁이 벌어졌다. 두 주는 가로 또는 세로 변을 공유할 때 인접하다고 한다. 공격이 일어나면, 주 XX의 주인이 인접한 주 YY의 주인을 미워하는 경우 XX는 YY를 정복하고, 정복당한 주는 공격자의 소유가 된다. 모든 공격은 동시에 일어나며, 이렇게 동시에 일어나는 한 번의 공격 묶음을 전투라고 부른다.

주인이 vv인 주를 미워하는 상속자는 오직 (v−1) mod N(v-1) \bmod N번뿐이므로, 공격받는 주는 항상 그 상속자에게 정복된다. 즉, 각 전투에서 현재 주인이 vv인 주는, 상하좌우로 인접한 주 중 하나라도 주인이 (v−1) mod N(v-1) \bmod N이면 주인이 (v−1) mod N(v-1) \bmod N으로 바뀌고, 그렇지 않으면 주인이 vv로 유지된다.

상속자의 수, 초기 영토 분포, 전투 횟수가 주어졌을 때, 모든 전투가 끝난 뒤의 영토 분포를 구하라. 예를 들어 상속자가 세 명(N=3N = 3)일 때, 한 번의 전투는 위 규칙에 따라 지도를 바꾼다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 네 정수 NN, RR, CC, KK가 하나의 공백으로 구분되어 주어진다. NN은 상속자의 수(2≤N≤1002 \le N \le 100), RR과 CC는 왕국의 크기(2≤R,C≤1002 \le R, C \le 100), KK는 전투 횟수(1≤K≤1001 \le K \le 100)이다. 상속자는 00번(첫 번째 상속자)부터 N−1N-1번(마지막 상속자)까지 번호가 매겨진다.

이어지는 RR개의 줄에는 각각 CC개의 정수 Hr,cH_{r,c}가 하나의 공백으로 구분되어 주어진다. Hr,cH_{r,c}는 rr행 cc열에 있는 주의 초기 주인이다(0≤Hr,c≤N−10 \le H_{r,c} \le N-1).

마지막 테스트 케이스 다음에는 네 개의 00이 하나의 공백으로 구분된 줄이 주어진다.

출력

각 테스트 케이스에 대해, 모든 KK번의 전투가 끝난 뒤의 영토 분포를 입력과 같은 형식으로 RR개의 줄에 각 줄마다 CC개의 정수를 하나의 공백으로 구분하여 출력하라.

예제1

  1. 예제 1

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