{$MODE OBJFPC}{$LONGSTRINGS ON}
type
TMyArray = array [0 .. 4, 0 .. 4] of Integer;
procedure FillArray(out AArray: TMyArray; AX, AY, AValue, AStep: Integer);
begin
if (AX = 5) or (AY = 5) then Exit;
AArray[AX, AY] := AValue;
if AValue in [0, 5] then
AStep *= -1;
FillArray(AArray, AX + 1, AY, AValue + AStep, AStep);
FillArray(AArray, AX, AY + 1, AValue + AStep, AStep);
end;
procedure PrintArray(const AArray: TMyArray);
var
X, Y: Integer;
begin
for Y := 0 to 4 do
begin
for X := 0 to 4 do
Write(AArray[X, Y]:3);
WriteLn();
end;
end;
var
MyArray: TMyArray;
begin
FillArray(MyArray, 0, 0, 1, 1);
PrintArray(MyArray);
end.
eyRNT0RFIE9CSkZQQ317JExPTkdTVFJJTkdTIE9OfQoKdHlwZQogIFRNeUFycmF5ID0gYXJyYXkgWzAgLi4gNCwgMCAuLiA0XSBvZiBJbnRlZ2VyOwoKICBwcm9jZWR1cmUgRmlsbEFycmF5KG91dCBBQXJyYXk6IFRNeUFycmF5OyBBWCwgQVksIEFWYWx1ZSwgQVN0ZXA6IEludGVnZXIpOwogIGJlZ2luCiAgICBpZiAoQVggPSA1KSBvciAoQVkgPSA1KSB0aGVuIEV4aXQ7CgogICAgQUFycmF5W0FYLCBBWV0gOj0gQVZhbHVlOwoKICAgIGlmIEFWYWx1ZSBpbiBbMCwgNV0gdGhlbgogICAgICBBU3RlcCAqPSAtMTsKCiAgICBGaWxsQXJyYXkoQUFycmF5LCBBWCArIDEsIEFZLCBBVmFsdWUgKyBBU3RlcCwgQVN0ZXApOwogICAgRmlsbEFycmF5KEFBcnJheSwgQVgsIEFZICsgMSwgQVZhbHVlICsgQVN0ZXAsIEFTdGVwKTsKICBlbmQ7CgogIHByb2NlZHVyZSBQcmludEFycmF5KGNvbnN0IEFBcnJheTogVE15QXJyYXkpOwogIHZhcgogICAgWCwgWTogSW50ZWdlcjsKICBiZWdpbgogICAgZm9yIFkgOj0gMCB0byA0IGRvCiAgICBiZWdpbgogICAgICBmb3IgWCA6PSAwIHRvIDQgZG8KICAgICAgICBXcml0ZShBQXJyYXlbWCwgWV06Myk7CgogICAgICBXcml0ZUxuKCk7CiAgICBlbmQ7CiAgZW5kOwoKdmFyCiAgTXlBcnJheTogVE15QXJyYXk7CmJlZ2luCiAgRmlsbEFycmF5KE15QXJyYXksIDAsIDAsIDEsIDEpOwogIFByaW50QXJyYXkoTXlBcnJheSk7CmVuZC4=