Advertisement
Guest User

Untitled

a guest
Oct 27th, 2019
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. #!/usr/bin/env perl6
  2.  
  3. my @insrtuctions = "advent2018-d7.txt".IO.lines;
  4. my $re = / "Step " $<before>=(\w) " must be finished before step " $<after>=(\w) " can begin." /;
  5. my %steps;
  6.  
  7. for @insrtuctions {
  8. .match: $re;
  9. if %steps{$<after>}:!exists {
  10. %steps{$<after>} = %{ depends => [], blocking => [], available => False}
  11. }
  12. %steps{$<after>}<depends>.push($<before>.Str);
  13. }
  14.  
  15. for %steps.pairs -> $step {
  16. for $step.value<depends><> -> $dep {
  17. if %steps{$dep}:!exists {
  18. %steps{$dep} = %{ depends => [], blocking => [], available => False};
  19. }
  20. %steps{$dep}<blocking>.push($step.key);
  21. }
  22. }
  23.  
  24. .say for %steps.sort;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement