program diamond;
var
n, x, y: integer;
procedure PrintChars(count: integer);
begin
if count > 0 then
begin
write('*');
PrintChars(count - 1);
end;
end;
procedure DrawRow(y, n: integer);
var
x, outerWidth, innerWidth: integer;
begin
outerWidth := n - abs(y);
if n >= 5 then
innerWidth := (n - 2) - abs(y)
else
innerWidth := -1;
for x := -n to n do
begin
if (abs(x) = outerWidth) or
((innerWidth >= 0) and (abs(y) <= n - 2)
and (abs(x) = innerWidth)) then
write('*')
else
write(' ');
end;
writeln;
end;
procedure DrawTop(y, n: integer);
begin
if y >= 0 then
begin
DrawRow(y, n);
DrawTop(y - 1, n);
end;
end;
procedure DrawBottom(y, n: integer);
begin
if y <= 0 then
begin
DrawRow(y, n);
DrawBottom(y + 1, n);
end;
end;
begin
write('Enter size (5 or more): ');
readln(n);
if n >= 5 then
begin
DrawTop(n, n);
DrawBottom(-n + 1, n);
end;
end.