-
Notifications
You must be signed in to change notification settings - Fork 0
/
swexpert_1210.cpp
56 lines (51 loc) · 1021 Bytes
/
swexpert_1210.cpp
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
#include <stdio.h>
int init(int(*a)[2]);
int main() {
int arr[100][2] = { 0 };
int map[102] = { 0 };
int temp = 0, i, j, test_case, count;
while (scanf("%d", &test_case) != EOF) {
count = init(arr);
for (i = 1; i < 100; ++i) {
for (j = 1; j <= 100; ++j) {
scanf("%d", &temp);
map[j] = temp;
}
for (j = 0; j < count; ++j) {
temp = arr[j][1];
if (map[temp + 1] > 0) {
while (map[temp] != 0) {
temp++;
}
arr[j][1] = temp - 1;
}
else if (map[temp - 1] > 0) {
while (map[temp] != 0) {
temp--;
}
arr[j][1] = temp + 1;
}
}
}
printf("#%d ", test_case);
for (i = 0; i < count; ++i) {
if (map[arr[i][1]] == 2) {
printf("%d\n", arr[i][0] - 1);
break;
}
}
}
return 0;
}
int init(int(*a)[2]) {
int i, count = 0, temp;
for (i = 1; i <= 100; ++i) {
scanf("%d", &temp);
if (temp) {
a[count][0] = i;
a[count][1] = i;
count++;
}
}
return count;
}