Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.50 KB | None | 0 0
  1. open DATA, "<", $ARGV[0];
  2. my @p;
  3. <DATA>;
  4. while (<DATA>) {
  5.     chomp;
  6.     if (m/^(\d+?) (\d+?)$/) {
  7.         push @p, [$1, $2];
  8.         next;
  9.     }
  10.     if (m/^\d+?$/) {
  11.         my $min = 10_000;
  12.         for my $tgt (0..$#p) {
  13.             for ($tgt+1..$#p) {
  14.                 my $d = (($p[$tgt][0] - $p[$_][0])**2 + ($p[$tgt][1] - $p[$_][1])**2)**.5;
  15.                 $min = $d if ($d < $min);
  16.             }
  17.         }
  18.         print $min < 10_000 ? sprintf "%.4f\n", $min : "INFINITY\n";
  19.         @p = ();
  20.     }
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement