Advertisement
Guest User

Untitled

a guest
May 28th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.79 KB | None | 0 0
  1. var
  2.   s : array [1..10000] of longint; //массив, в который прочитаем наши элементы
  3.   a : array [1..100,1..100] of longint; //массив, в котором будет змейка
  4.   i,j,n,m,x,y,k,q: longint;
  5. begin
  6.   read(n, m); // размер нашего двумерного массива, в котором числа будут змейкой
  7.   q:=0;   //размер массива s
  8.   for i:=1 to n do
  9.     for j:=1 to m do
  10.       begin
  11.         q:=q+1;
  12.         read(s[q]);
  13.         a[i,j]:=-1; //массив со змейкой изначально забиваем -1
  14.       end;
  15.   x:=1; y:=1; k:=0; //сейчас будет ставить элемент s[k] в позицию a[x,y]
  16.   while (k < q) do //пока не поставим все элементы
  17.     begin
  18.       while (a[x,y] = -1) do //пока можем, ставим их вправо.
  19.         begin
  20.           k:=k+1;
  21.           a[x,y]:=s[k];
  22.           y:=y+1;
  23.           if y > m then break;
  24.         end;
  25.       y:=y-1; x:=x+1;
  26.       while (a[x,y] = -1) do //затем вниз
  27.         begin
  28.           k:=k+1;
  29.           a[x,y]:=s[k];
  30.           x:=x+1;
  31.           if (x > n) then break;
  32.         end;
  33.       x:=x-1; y:=y-1;
  34.       while (a[x,y] = -1) do //затем влево
  35.         begin
  36.           k:=k+1;
  37.           a[x,y]:=s[k];
  38.           y:=y-1;
  39.           if (y = 0) then break;
  40.         end;
  41.       y:=y+1; x:=x-1;
  42.       while (a[x,y] = -1) do //затем вверх
  43.         begin
  44.           k:=k+1;
  45.           a[x,y]:=s[k];
  46.           x:=x-1;
  47.           if (x = 0) then break;
  48.         end;
  49.       x:=x+1; y:=y+1;
  50.     end;
  51. //выводим массив-змейку
  52.   for i:=1 to n do
  53.     begin
  54.       for j:=1 to m do write(a[i,j],' ');
  55.       writeln;
  56.     end;
  57. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement