-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsaddlepoint.c
43 lines (40 loc) · 2.39 KB
/
saddlepoint.c
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
/*//==============================================================================================================
Элемент двумерного массива называется седловым, если он одновременно наибольший в своей строке и наименьший в своём
столбце.
Дан целочисленный двумерный массив, размер которого не превышает 10x10. Известно, что все элементы массива различны.
Составьте программу saddlepoint.c, определяющую седловую точку в этом массиве.
Программа должна считывать из стандартного потока ввода количество строк и столбцов двумерного массива и его элементы.
Программа должна вывести в стандартный поток координаты найденной седловой точки или слово «none», если седловой точки
не существует.
В программе запрещается обращаться к одному и тому же элементу массива дважды.
*///==============================================================================================================
#include <stdio.h>
int main() {
int row, column, row_max, now;
scanf("%d%d", &row, &column);
int row_max_index[row], column_min[column], column_min_index[column];
// long long arr[a][b];
for (int i = 0; i < row; ++i)
for (int j = 0; j < column; ++j) {
scanf("%d", &now);
if ((0 == j) || (now > row_max)) {
row_max = now;
row_max_index[i] = j;
} else if (now == row_max) {
row_max_index[i] = -1;
}
if ((0 == i) || (now < column_min[j])) {
column_min[j] = now;
column_min_index[j] = i;
} else if (now == column_min[j]) {
column_min_index[j] = -1;
}
}
for (int i = 0; i < row; i++) {
if ((row_max_index[i] != -1) && (column_min_index[row_max_index[i]] == i)) {
printf("%i %i\n", i, row_max_index[i]);
break;
} else if (i == row - 1) printf("none\n");
}
return 0;
}