const n = 10;
VAR
m: Array[1..n, 1..n] of Integer;
i, j, k, l, row_max, col_max: Integer;
count: Integer;
BEGIN
{Заполнение матрицы случайными целыми числами}
for i:=1 to n do
for j:=1 to n do
m[i,j]:=random(21);
{Выбираем небольшое максимальное, чтобы было побольше одинаковых
Аналогично, чтобы одинаковых - то большим}
{Показ}
for i:=1 to n do begin
for j:=1 to n do Write(m[i,j]:5); WriteLn end;
{Начинаем проверять, самым простым методом}
col_max:=1;
row_max:=1; {Индексы максимального элемента}
randomize;
for i:=1 to n do
for j:=1 to n do
begin
{Сначала проверяем, один ли раз встречается}
count := 1;
for k:=1 to n do
for l:=1 to n do
if (k<>i) and (l<>j) and (m[k,l] = m[i,j]) then
begin
inc(count); Break; {Немедленный выход из цикла -
по крайней мере один раз повторяется}
end;
if (count =1) and (m[i, j] > m[row_max, col_max]) then
begin
row_max := i;
col_max := j
end
end;
{Первый элемент еужно проверить на повторяемость отдельно:
может все повторяются}
count := 1;
if (row_max = 1) and (col_max = 1) then
begin
count:=1;
for i:=1 to n do
for j:=1 to n do
if m[i,j] = m[1,1] then
begin
inc(count);
WriteLn('В массиве нет уникальных элементов');
Break
end
end;
if count = 1 then begin
WriteLn('Максимальный из уникальных элементов равен ',m[row_max, col_max]);
WriteLn('В строке ',row_max,', в колонке ',col_max)
end;
END.