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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
| #include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int* solution(const char*** places, size_t places_rows, size_t places_cols) {
int* answer = (int*)malloc(5);
char places_2 [5][9][9]={0};
int result;
int results[4];
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
for(int k=0;k<5;k++){
places_2[i][j+2][k+2]=places[i][j][k];
}
}
}
for(int i=0;i<5;i++){
answer[i]=1;
for(int j=2;j<7;j++){
for(int k=2;k<7;k++){
if(places_2[i][j][k] == 'P'){
result = 0;
for(int l=0;l<4;l++){
switch(l){
case 0:
j++;
break;
case 1:
j--;
break;
case 2:
k++;
break;
case 3:
k--;
break;
}
if(places_2[i][j][k] == 'P') result += 2;
if(places_2[i][j][k] == 'X') result -= 1;
if(result >=2) answer[i] = 0;
results[0]=result;
results[1]=result;
results[2]=result;
results[3]=result;
for(int m=0;m<4;m++){
switch(m){
case 0:
if(l != 1) j++;
break;
case 1:
if(l != 0) j--;
break;
case 2:
if(l != 3) k++;
break;
case 3:
if(l != 2) k--;
break;
}
if(places_2[i][j][k] == 'P') results[m] += 2;
if(results[m] >= 2) answer[i] = 0;
switch(m){
case 0:
if(l != 1) j--;
break;
case 1:
if(l != 0) j++;
break;
case 2:
if(l != 3) k--;
break;
case 3:
if(l != 2) k++;
break;
}
}
switch(l){
case 0:
j--;
break;
case 1:
j++;
break;
case 2:
k--;
break;
case 3:
k++;
break;
}
}
}
}
}
}
return answer;
}
|