G'day jaiieq,
I appear to have identified more paths than you show (e.g. 0:6 6:12 12:24 is not in your list). Here's the code:
#!/usr/bin/env perl -l
use strict;
use warnings;
my %route_from;
my %routes_starting_at;
my @paths = qw{0:6 0:12 0:18 0:24 6:12 6:18 6:24 12:18 12:24 18:24};
map { push @{$route_from{$_->[0]}}, $_->[1] } map { [ split /:/ ] } @p
+aths;
for my $s (sort { $b <=> $a } keys %route_from) {
for my $e (sort { $a <=> $b } @{$route_from{$s}}) {
my $path = "$s:$e";
if (exists $routes_starting_at{$e}) {
for my $r (@{$routes_starting_at{$e}}) {
my $ext_path = join ' ' => $path, $r;
push @{$routes_starting_at{$s}}, $ext_path;
}
}
else {
push @{$routes_starting_at{$s}}, $path;
}
}
}
for my $k (sort { $a <=> $b } keys %routes_starting_at) {
print for @{$routes_starting_at{$k}};
}
Output:
$ pm_start_end_graph.pl
0:6 6:12 12:18 18:24
0:6 6:12 12:24
0:6 6:18 18:24
0:6 6:24
0:12 12:18 18:24
0:12 12:24
0:18 18:24
0:24
6:12 12:18 18:24
6:12 12:24
6:18 18:24
6:24
12:18 18:24
12:24
18:24
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|