+A spider, S, sits in one corner of a cuboid room, measuring 6 by 5 by 3, and a

+fly, F, sits in the opposite corner. By travelling on the surfaces of the room

+the shortest "straight line" distance from S to F is 10 and the path is shown

+However, there are up to three "shortest" path candidates for any given cuboid

+and the shortest route is not always integer.

+By considering all cuboid rooms with integer dimensions, up to a maximum size

+of M by M by M, there are exactly 2060 cuboids for which the shortest distance

+is integer when M=100, and this is the least value of M for which the number of

+solutions first exceeds two thousand; the number of solutions is 1975 when

+Find the least value of M such that the number of solutions first exceeds one

+# my %distance_squares = ();

+ my $t = $arr[($idx+1)%3] + $arr[($idx+2)%3];

+ my $dist_sq = min(map { $get_dist->($_) } (0 .. $#arr));

+ my $dist = sqrt($dist_sq);

+ if (int($dist) == $dist)

+ # $distance_squares{$dist_sq} = 1;

+ print "Checked M=$M Count=$count\n";

+ die "Number of solutions for M == 99 is wrong.";

+ if ($count > 1_000_000)

+ print "Final[M] = $M\n";