Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. use strict;
  2. use warnings;
  3. use feature 'say';
  4. use Data::Dumper;
  5.  
  6. my $S = <>; chomp($S);
  7. my $out = [];
  8.  
  9. for my $S_group ($S =~ /(R+L+)/g) {
  10. my $r_children = 0;
  11. my $l_children = 0;
  12. my $r_count = () = $S_group =~ /R/g;
  13. my $l_count = () = $S_group =~ /L/g;
  14.  
  15. if ($r_count % 2 == 0) {
  16. $r_children += $r_count / 2;
  17. $l_children += $r_count / 2;
  18. } else {
  19. $r_children += $r_count - int($r_count / 2);
  20. $l_children += int($r_count / 2);
  21. }
  22.  
  23. if ($l_count % 2 == 0) {
  24. $r_children += $l_count / 2;
  25. $l_children += $l_count / 2;
  26. } else {
  27. $r_children += int($l_count / 2);
  28. $l_children += $l_count - int($l_count / 2);
  29. }
  30.  
  31. for (1..$r_count) {
  32. if ($_ == $r_count) {
  33. push(@$out, $r_children);
  34. } else {
  35. push(@$out, 0);
  36. }
  37. }
  38.  
  39. for (1..$l_count) {
  40. if ($_ == 1) {
  41. push(@$out, $l_children);
  42. } else {
  43. push(@$out, 0);
  44. }
  45. }
  46. }
  47.  
  48. say "@$out";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement