aboutsummaryrefslogtreecommitdiff
path: root/challenge-197/deadmarshal/pascal/ch2.pas
blob: b56c4dfae473599cc33ffbbe625794ba8b73a605 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
program Ch2;

{$mode objfpc}

uses
  SysUtils,Types;

var
  I:Integer;
  A1,A2:TIntegerDynArray;

procedure SwapInts(var A,B:Integer);
var
  Temp:Integer;
begin
  Temp := A;
  A := B;
  B := Temp;
end;

procedure WiggleSort(var Arr:TIntegerDynArray);
var
  I:Integer;
begin
  for I := Low(Arr) to High(Arr)-1 do
    if((not Odd(I)) = (Arr[I] > Arr[I+1])) then
      SwapInts(Arr[I],Arr[I+1]);
end;

begin
  A1 := [1,5,1,1,6,4];
  A2 := [1,3,2,2,3,1];
  WiggleSort(A1);
  WiggleSort(A2);
  for I := Low(A1) to High(A1) do Write(A1[I], ' '); WriteLn;
  for I := Low(A2) to High(A2) do Write(A2[I], ' '); WriteLn;
end.