📄 3453091_ac_797ms_2500k.java
字号:
import java.util.*;
public class Main {
private Scanner in;
private int [][] dish = new int [20][20];
private int [][] tmp = new int [20][20];
private int [] rule;
public static void main(String [] args) {
new Main().run();
}
private void run() {
in = new Scanner (System.in);
int n;
rule = new int [16];
n = in.nextInt();
for (int i = 0; i < 16; i++) {
rule[i] = in.nextInt();
}
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
dish[i][j] = in.nextInt();
}
}
while (n-- > 0) {
for (int i = 0; i < 20; i++) {
System.arraycopy(dish[i], 0, tmp[i], 0, dish[i].length);
}
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
int t = dish[i][j] + rule[sum(tmp, i, j)];
if (t < 0) {
t = 0;
}
if (t > 3) {
t = 3;
}
dish[i][j] = t;
}
}
}
output();
}
private void output() {
String str = ".!X#";
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
System.out.print(str.charAt(dish[i][j]));
}
System.out.println();
}
}
private int sum(int [][] array, int i, int j) {
return value(array, i, j) + value(array, i - 1, j) +
value(array, i + 1, j) + value(array, i, j - 1) + value(array, i, j + 1);
}
private int value(int [][] array, int i, int j) {
if (i < 0 || j < 0 || i > 19 || j > 19){
return 0;
} else {
return array[i][j];
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -