aboutsummaryrefslogtreecommitdiff
path: root/challenge-147/abigail/pascal/ch-2.p
blob: ac8d08d0760e2e418bee3cd9d9ced2f040ca0901 (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
39
40
41
Program ch2;

(*                                                                   *)
(* See https://theweeklychallenge.org/blog/perl-weekly-challenge-147 *)
(*                                                                   *)

(*                                           *)
(* Run as: fpc -och-2.out ch-2.p; ./ch-2.out *)
(*                                           *)

uses
    fgl;

var
    pentagon: specialize TFPGMap <longint, boolean>;
    n, p, seen, i: longint;
    done: boolean;

begin
    pentagon := specialize TFPGMap <longint, boolean> . Create;
    p := 0;
    n := 0;
    done := false;
    while not done do begin
        p := p + n + n + n + 1;
        n := n + 1;
        pentagon . Add (p, true);
        for i := 0 to pentagon . count - 1 do begin
            seen := pentagon . Keys [i];
            if (seen + seen <= p)                    and
               (pentagon . IndexOf (p - seen) >= 0)  and
               (pentagon . IndexOf (p - seen - seen) >= 0) then begin
                writeln (seen, ' ', p - seen);
                done := true;
            end;
            if done then begin
                break;
            end;
        end
    end
end.