Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl6
- my @insrtuctions = "advent2018-d7.txt".IO.lines;
- my $re = / "Step " $<before>=(\w) " must be finished before step " $<after>=(\w) " can begin." /;
- my %steps;
- for @insrtuctions {
- .match: $re;
- if %steps{$<after>}:!exists {
- %steps{$<after>} = %{ depends => [], blocking => [], available => False}
- }
- %steps{$<after>}<depends>.push($<before>.Str);
- }
- for %steps.pairs -> $step {
- for $step.value<depends><> -> $dep {
- if %steps{$dep}:!exists {
- %steps{$dep} = %{ depends => [], blocking => [], available => False};
- }
- %steps{$dep}<blocking>.push($step.key);
- }
- }
- .say for %steps.sort;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement