No dobra niby mam algorytm i chyba powinnien dzialac, ale jest to rozwazanie teoretyczne i nie sprawdzone, no i dodatko pewnie istnieje jakies lepsze.
W sumie to dla jednej wartosci to mozna sprobowac tak ze: znasz wartosc max(x,y) okreslmy to jako max, polozenie max w maciezy to (m,n), dodatkowo pozycja komorki pole to (i,j) i teraz wartosc kazdego pola mozna opisac wzorem:
pole = max - ( abs(m - i) + abs(n - j) );
ten kod wykonany w dwoch petalch for powinien dac wartosci dla jednej liczby.
Aby zrobic to dla kilku to po prostu na poczatku wypelnij macierz na poczatku najmnijeszymi warotsciami a potem tylko sprawdzaj czy dana wartosc pola jest wieksza niz wartosc komorki ktora aktualnie badasz i jak tak to wstaw ta wartosc. A i musisz wtedy dla kazdej wartosc przeliczyc macierz od nowa co jesli macierz jest duza i wartosci sporo moze zabrac chwilke czasu.
Pozdrawiam.
PS. mam nadzieje ze dobrze zorzumialem jak dana maicierz ma wygladac.