ответ: перебор всегда работает но возможно не рационален
int main()
{
SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
setlocale(LC_ALL, "Russian");
int mass[4][5];
int max = 0;
int count = 0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
mass[i][j] = rand() % 5;
cout << mass[i][j] << " ";
}
cout << endl;
}
for (int i1 = 0; i1 < 3; i1++)
{
for (int j1 = 0; j1 < 4; j1++)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
if (mass[i1][j1] == mass[i][j])
{
count++;
}
}
if ((count > 1) && (mass[i1][j1] >= max))
{
max = mass[i1][j1];
}
count = 0;
}
}
}
cout << endl << max;
const n = 10000;//Не изменяемая по ходу программы переменная
var a: array[1..n] of integer; b: array[1..10]of integer; c: array[1..10]of integer; i, s, v: integer;
begin for i := 1 to 10 do //Заполнение массива с числами от 1 до 10 c[i] := i; for i := 1 to n do //Заполнение массива a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей for i := 1 to n do case a[i] of 1: b[1] := b[1] + 1; 2: b[2] := b[2] + 1; 3: b[3] := b[3] + 1; 4: b[4] := b[4] + 1; 5: b[5] := b[5] + 1; 6: b[6] := b[6] + 1; 7: b[7] := b[7] + 1; 8: b[8] := b[8] + 1; 9: b[9] := b[9] + 1; 10: b[10] := b[10] + 1; End; for i := 1 to 10 do for s := 1 to 9 do if b[s] > b[s + 1] then begin v := b[s]; b[s] := b[s + 1]; b[s + 1] := v; v := c[s]; c[s] := c[s + 1]; c[s + 1] := v; end; writeln(c[10], ' - их ', b[10]); end.