Advertisement
Guest User

Untitled

a guest
Dec 14th, 2020
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.63 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. $filename = "15.txt";
  4.  
  5. open(FILE, $filename);
  6. @data = <FILE>;
  7. close(FILE);
  8.  
  9. $input = $data[0];
  10. $input =~ s/[^0-9,]*//sgi;
  11.  
  12. %firstspoke = ();
  13.  
  14. @init = split(",",$input);
  15.  
  16. $turn = 1;
  17.  
  18. foreach $ini (@init) {
  19.     $firstspoke{$ini} = $turn;
  20.     $lastspoken = $ini;
  21.     $turn++;
  22. }
  23.  
  24.  
  25. for ($i = $turn; $i < 30000001; $i++) {
  26.  
  27.     if (int($firstspoke{$lastspoken}) > 0) {
  28.          $diff = ($i - 1) - int($firstspoke{$lastspoken});
  29.     }
  30.     else
  31.     {
  32.            $diff = 0;
  33.     }  
  34.  
  35.     $firstspoke{$lastspoken} = ($i - 1);
  36.     $lastspoken = $diff;
  37.  
  38.     if ($i == 2020) {
  39.     print "P1: $lastspoken\n";
  40.     }
  41.  
  42. }
  43.  
  44. print "P2: $lastspoken\n";
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement