#28480: CPP


11030067@mail.hpsh.tp.edu.tw (和平110級鄧雨珊)

學校 : 臺北市立和平高級中學
編號 : 163096
來源 : [61.64.210.174]
最後登入時間 :
2022-10-23 16:54:59
f313. 2. 人口遷移 -- 2020年10月APCS | From: [219.85.157.240] | 發表日期 : 2021-12-12 23:01

#include <iostream>
#include <climits>
using namespace std;

int main() {
int R, C, K, M;
cin >> R >> C >> K >> M;
int p[50][50];
for (int i=0; i<R; i++){
for (int j=0; j<C; j++){
cin >> p[i][j];
}
}
int dir[4][2]={{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
while (M--){
int mv[50][50]={0};
for (int i=0; i<R; i++){
for (int j=0; j<C; j++){
if (p[i][j]==-1){
continue;
}
for (int k=0; k<4; k++){
int ni=i+dir[k][0];
int nj=j+dir[k][1];
if (ni>=0 && ni<R && nj>=0 && nj<C){
if (p[ni][nj]==-1){
continue;
}
mv[ni][nj]+=p[i][j]/K;
mv[i][j]-=p[i][j]/K;
}
}
}
}
for (int i=0; i<R; i++){
for (int j=0; j<C; j++){
if (p[i][j]==-1){
continue;
}
p[i][j]+=mv[i][j];
}
}
}
int mn=INT_MAX, mx=0;
for (int i=0;i<R; i++){
for (int j=0; j<C; j++){
if (p[i][j]==-1){
continue;
}
mn=min(mn, p[i][j]);
mx=max(mx, p[i][j]);
}
}
cout << mn <<endl<< mx <<endl;
}
 
ZeroJudge Forum