하나
2
삼
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
이십 일
스물 둘
이십 삼
스물넷
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
|
#포함하다 <대기줄>
#포함하다 <iostream>
사용 네임스페이스 기준;
정수 남성, 남성;
// M: 가로(x), N: 세로(y)
정수 TMT(1002)(1002) = { 0};
정수 입장(1002)(1002) = { 0,};
정수 dx(4) = { 0,0,하나,–하나 };
정수 다이(4) = { 하나,–하나,0,0 };
정수 하늘 = –하나;
대기줄< 한 쌍<정수, 정수> >묻다;
// 1: 잘 익은 토마토
// 0: 설익은 토마토
// -1: 토마토 x
정수 기본() {
날카로운 >> 쌀 >> 아니요;
~을 위한 (정수 num_n = 0;num_n < 아니요, num_n++)
~을 위한 (정수 num_m = 0;num_m < 남성; num_m++)
날카로운 >> tmt(num_n)(num_m);
~을 위한 (정수 나 = 0; 나 < 아니; 난++)
~을 위한 (정수 제이 = 0; 제이 < 남성;j++) {
만약에 (tmt(i)(j) == 하나) {
묻다.
푸시(쌍(i,j)); 액세스(i)(j) = 하나;
}
}
//광역 우선
하지만 (!
q.empty()) { // 날짜 계산 조건
정수 크기 = 묻다.
크기(); ~을 위한 (정수 케이 = 0;케이 < 크기, k++) {
정수 서쪽 = 묻다.
앞쪽(). 첫 번째; 정수 sx = 묻다.
앞쪽(). 두번째; 묻다.
대중 음악(); // 인접 검색
~을 위한 (정수 나 = 0; 나 < 4; 나++) {
정수 nx = sx + dx(i);
정수 뉴욕 = 서쪽 + dy(i);
만약에 (nx >= 0 && nx < 쌀 && 뉴욕 >= 0 && 뉴욕 < N) {
만약에 (방문(NY)(nx) !
= 하나 && tmt(뉴욕)(nx) == 0) { 묻다.
푸시(쌍(뉴욕, 뉴욕)); 액세스(뉴욕주)(뉴욕주) = 하나;
tmt(뉴욕)(nx) = 하나;
}
}
}
}
++하늘;
}
// 모든 토마토가 익지 않은 경우
~을 위한 (정수 나 = 0; 나 < 아니; 난++) {
~을 위한 (정수 제이 = 0; 제이 < 남성;j++) {
만약에 (tmt(i)(j) == 0)하늘 = –하나;
}
}
계산자 << 하늘 << 마치다;
}
|
씨에스 |