fork download
  1. #!/usr/bin/perl
  2. use 5.016;
  3. use warnings;
  4. no warnings qw(once);
  5. use List::Util qw(reduce first);
  6. use Data::Dumper;
  7. local $Data::Dumper::Terse = 1;
  8. local $Data::Dumper::Indent = 0;
  9.  
  10. sub f {
  11. @{
  12. +reduce{
  13. my $x = first{ $a->[$_] == $b } (0 .. $#{$a});
  14. defined $x ? [@{$a}[0 .. $x - 1, $x + 1 .. $#{$a}]] : $a;
  15. } [@{$_[0]}], @{$_[1]}
  16. } == 1
  17. }
  18.  
  19. foreach(
  20. [[1,2,3],[5,6,7]],
  21. [[1,1,1],[1,1,2]],
  22. [[1,1,2],[2,2,1]],
  23. [[9,8,9],[8,6,4]],
  24. [[9,7,2],[2,2,9]],
  25. ){
  26. say Dumper($_), " => ", (f(@{$_}) ? "true" : "false");
  27. }
  28.  
Success #stdin #stdout 0.02s 5200KB
stdin
Standard input is empty
stdout
[[1,2,3],[5,6,7]] => false
[[1,1,1],[1,1,2]] => true
[[1,1,2],[2,2,1]] => true
[[9,8,9],[8,6,4]] => false
[[9,7,2],[2,2,9]] => true