50199. Candy Crush

難度:3/5 Used Time: 15:22

dx[], dy[]想好怎麼寫就好寫好多了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <stdlib.h>

int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, -1, 0, 1};

static inline int is_valid(int x, int y, int r, int c){
return x >= 0 && y >= 0 && x < r && y < c;
}

void check(int arr[512][512], int x, int y, int d1, int d2, int r, int c){
int x1 = x + dx[d1], y1 = y + dy[d1];
int x2 = x + dx[d2], y2 = y + dy[d2];
if(is_valid(x1, y1, r, c) && is_valid(x2, y2, r, c)){
if(arr[x1][y1] == arr[x][y] && arr[x][y] == arr[x2][y2]){
arr[x1][y1] = 0;
arr[x][y] = 0;
arr[x2][y2] = 0;
}
}
}

int main(){
int r, c; scanf("%d %d", &r, &c);
int arr[512][512] = {0};
for(int i = 0; i < r; i++){
for(int j = 0; j < c; j++){
scanf("%d", &arr[i][j]);
}
}

for(int i = 0; i < r; i++){
for(int j = 0; j < c; j++){
for(int d1 = 0; d1 < 4; d1++){
for(int d2 = d1 + 1; d2 < 4; d2++){
check(arr, i, j, d1, d2, r, c);
}
}
}
}

for(int i = 0; i < r; i++){
for(int j = 0; j < c; j++){
printf("%d%c", arr[i][j], (j == c - 1) ? '\n' : ' ');
}
}
}

50199. Candy Crush
https://aaronlin1229.github.io/judgegirl_50199/
Author
Akizumi
Posted on
July 17, 2023
Licensed under