aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2019-07-25 23:48:14 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2019-07-25 23:48:14 +0100
commit8b31784d9239d87e9f76e1f3dffba03c885b0b4e (patch)
tree3eb8de12d8d21a05107bf42b4dd79899817cec18
parenta6bed07a66cbb56057aefd963a2b155d876f0235 (diff)
downloadperlweeklychallenge-club-8b31784d9239d87e9f76e1f3dffba03c885b0b4e.tar.gz
perlweeklychallenge-club-8b31784d9239d87e9f76e1f3dffba03c885b0b4e.tar.bz2
perlweeklychallenge-club-8b31784d9239d87e9f76e1f3dffba03c885b0b4e.zip
- Added solutions by E. Choroba.
-rwxr-xr-xchallenge-018/e-choroba/perl5/ch-1.pl24
-rwxr-xr-xchallenge-018/e-choroba/perl5/ch-1a.pl185
-rwxr-xr-xchallenge-018/e-choroba/perl5/ch-1b.pl181
-rw-r--r--stats/pwc-current.json135
-rw-r--r--stats/pwc-language-breakdown-summary.json56
-rw-r--r--stats/pwc-language-breakdown.json300
-rw-r--r--stats/pwc-leaders.json860
-rw-r--r--stats/pwc-summary-1-30.json124
-rw-r--r--stats/pwc-summary-31-60.json122
-rw-r--r--stats/pwc-summary-61-90.json122
-rw-r--r--stats/pwc-summary-91-120.json50
-rw-r--r--stats/pwc-summary.json262
12 files changed, 1218 insertions, 1203 deletions
diff --git a/challenge-018/e-choroba/perl5/ch-1.pl b/challenge-018/e-choroba/perl5/ch-1.pl
new file mode 100755
index 0000000000..3bb93311c7
--- /dev/null
+++ b/challenge-018/e-choroba/perl5/ch-1.pl
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use feature qw{ say };
+
+my @longest = ("");
+my $string = shift;
+for my $pos (1 .. length $string) {
+ for my $length (1 .. 1 - $pos + length $string) {
+ next if $length < length $longest[0];
+
+ my $substr = substr $string, $pos - 1, $length;
+ my $found = 0;
+ -1 != index $_, $substr and ++$found for @ARGV;
+ if ($found == @ARGV) {
+ if ($length == length $longest[0]) {
+ push @longest, $substr;
+ } else {
+ @longest = $substr;
+ }
+ }
+ }
+}
+say "<$_>" for @longest;
diff --git a/challenge-018/e-choroba/perl5/ch-1a.pl b/challenge-018/e-choroba/perl5/ch-1a.pl
index 3bb93311c7..fcbdfc0972 100755
--- a/challenge-018/e-choroba/perl5/ch-1a.pl
+++ b/challenge-018/e-choroba/perl5/ch-1a.pl
@@ -3,22 +3,179 @@ use warnings;
use strict;
use feature qw{ say };
-my @longest = ("");
-my $string = shift;
-for my $pos (1 .. length $string) {
- for my $length (1 .. 1 - $pos + length $string) {
- next if $length < length $longest[0];
-
- my $substr = substr $string, $pos - 1, $length;
- my $found = 0;
- -1 != index $_, $substr and ++$found for @ARGV;
- if ($found == @ARGV) {
- if ($length == length $longest[0]) {
- push @longest, $substr;
+{ package My::Node;
+ sub new { bless { start => $_[1], end => $_[2] }, $_[0] }
+ sub edge_length {
+ my ($self, $position) = @_;
+ ($self->{end} < $position + 1
+ ? $self->{end}
+ : $position + 1
+ ) - $self->{start}
+ }
+}
+
+{ package My::Suffix::Tree;
+
+ sub new {
+ my ($class) = @_;
+ bless my $self = {position => -1,
+ text => "",
+ active_edge => 0,
+ active_length => 0,
+ current_node => -1,
+ }, $class;
+ $self->{root} = $self->new_node(-1, -1);
+ $self->{active_node} = $self->{root};
+ return $self
+ }
+
+ sub add_numbers {
+ my ($self, $node_index) = @_;
+ my $node = $self->{nodes}[$node_index];
+ for my $next_index (values %{ $node->{next} }) {
+ undef $node->{numbers}{$_} for $self->add_numbers($next_index);
+ }
+ return $node->{number} // () unless exists $node->{numbers};
+
+ return keys %{ $self->{numbers} }
+ }
+
+ sub add_words {
+ my ($self, @words) = @_;
+ $self->{number_of_words} = @ARGV;
+ for my $word_index (0 .. $#words) {
+ $self->add_char($_)
+ for split //, "$words[$word_index]<$word_index>";
+ }
+ my $text_length = length $self->{text};
+ for my $node (@{ $self->{nodes} }) {
+ next if $node->{start} < 0;
+ my $text = $node->{end} > $text_length
+ ? substr $self->{text}, $node->{start}
+ : substr $self->{text}, $node->{start},
+ $node->{end} - $node->{start};
+ $node->{text} = $text;
+ if (my ($number) = $text =~ /<([0-9]+)>/) {
+ $node->{number} = $number;
+ }
+ }
+ $self->add_numbers(0);
+ }
+
+ sub _add_suffix_link {
+ my ($self, $node) = @_;
+ $self->{nodes}[ $self->{need_suffix_link} ]{link} = $node
+ if $self->{need_suffix_link} > 0;
+ $self->{need_suffix_link} = $node;
+ }
+
+ sub active_edge { substr $_[0]{text}, $_[0]{active_edge}, 1 }
+
+ sub walk_down {
+ my ($self, $next) = @_;
+ $next //= 0;
+ my $position = $self->{position};
+ if ($self->{active_length}
+ >= $self->{nodes}[$next]->edge_length($position)
+ ) {
+ $self->{active_edge}
+ += $self->{nodes}[$next]->edge_length($position);
+ $self->{active_length}
+ -= $self->{nodes}[$next]->edge_length($position);
+ $self->{active_node} = $next;
+ return 1
+ }
+ return
+ }
+
+ sub new_node {
+ my ($self, $start, $end) = @_;
+ $self->{nodes}[ ++$self->{current_node} ]
+ = 'My::Node'->new($start, $end);
+ $self->{current_node}
+ }
+
+ sub add_char {
+ my ($self, $char) = @_;
+ substr $self->{text}, ++$self->{position}, 1, $char;
+ $self->{need_suffix_link} = -1;
+ ++$self->{remainder};
+ while ($self->{remainder} > 0) {
+ $self->{active_edge} = $self->{position}
+ unless $self->{active_length};
+ if (! exists
+ $self->{nodes}[ $self->{active_node} ]{next}{ $self->active_edge }
+ ) {
+ $self->{nodes}[ $self->{active_node} ]
+ {next}{ $self->active_edge }
+ = $self->new_node($self->{position}, 'INF');
+ $self->_add_suffix_link($self->{active_node}); # Rule 2.
+ } else {
+ my $next = $self->{nodes}[ $self->{active_node} ]
+ {next}{ $self->active_edge };
+ next if $self->walk_down($next); # Observation 2.
+
+ # Observation 2.
+ if ($char eq substr $self->{text},
+ $self->{nodes}[$next]{start} + $self->{active_length}, 1
+ ) {
+ ++$self->{active_length};
+ $self->_add_suffix_link($self->{active_node}); # Observation 3.
+ last
+ }
+ my $split = $self->new_node($self->{nodes}[$next]{start},
+ $self->{nodes}[$next]{start} + $self->{active_length});
+ $self->{nodes}[ $self->{active_node} ]{next}
+ { $self->active_edge } = $split;
+ my $leaf = $self->new_node($self->{position}, 'INF');
+ $self->{nodes}[$split]{next}{$char} = $leaf;
+ $self->{nodes}[$next]{start} += $self->{active_length};
+ $self->{nodes}[$split]{next}{ substr $self->{text},
+ $self->{nodes}[$next]{start}, 1 } = $next;
+ $self->_add_suffix_link($split); # Rule 2.
+ }
+ -- $self->{remainder};
+
+ if ($self->{active_node} == $self->{root}
+ && $self->{active_length} > 0 # Rule 1.
+ ) {
+ --$self->{active_length};
+ $self->{active_edge}
+ = $self->{position} - $self->{remainder} + 1;
} else {
- @longest = $substr;
+ $self->{nodes}[ $self->{active_node} ]{link} //= 0;
+ $self->{active_node}
+ = $self->{nodes}[ $self->{active_node} ]{link} > 0
+ ? $self->{nodes}[ $self->{active_node} ]{link}
+ : $self->{root}; # Rule 3.
}
}
}
+
+ my @lcs;
+ sub longest_common_substring {
+ my ($self, $node_index, $string) = @_;
+ @lcs = ("") unless $node_index;
+ my $node = $self->{nodes}[$node_index];
+
+ if ($self->{number_of_words} == keys %{ $node->{numbers} }) {
+ my $compare_lengths = length $string <=> length $lcs[0];
+ push @lcs, $string if $compare_lengths == 0;
+ @lcs = ($string) if $compare_lengths == 1;
+ }
+
+ for my $next_char (keys %{ $node->{next} }) {
+ my $next_index = $node->{next}{$next_char};
+ my $next = $self->{nodes}[$next_index];
+ $self->longest_common_substring(
+ $next_index,
+ "$string$next->{text}");
+ }
+ return @lcs
+ }
}
-say "<$_>" for @longest;
+
+my $o = 'My::Suffix::Tree'->new;
+$o->add_words(@ARGV);
+
+say "<$_>" for $o->longest_common_substring(0, "");
diff --git a/challenge-018/e-choroba/perl5/ch-1b.pl b/challenge-018/e-choroba/perl5/ch-1b.pl
deleted file mode 100755
index fcbdfc0972..0000000000
--- a/challenge-018/e-choroba/perl5/ch-1b.pl
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/usr/bin/perl
-use warnings;
-use strict;
-use feature qw{ say };
-
-{ package My::Node;
- sub new { bless { start => $_[1], end => $_[2] }, $_[0] }
- sub edge_length {
- my ($self, $position) = @_;
- ($self->{end} < $position + 1
- ? $self->{end}
- : $position + 1
- ) - $self->{start}
- }
-}
-
-{ package My::Suffix::Tree;
-
- sub new {
- my ($class) = @_;
- bless my $self = {position => -1,
- text => "",
- active_edge => 0,
- active_length => 0,
- current_node => -1,
- }, $class;
- $self->{root} = $self->new_node(-1, -1);
- $self->{active_node} = $self->{root};
- return $self
- }
-
- sub add_numbers {
- my ($self, $node_index) = @_;
- my $node = $self->{nodes}[$node_index];
- for my $next_index (values %{ $node->{next} }) {
- undef $node->{numbers}{$_} for $self->add_numbers($next_index);
- }
- return $node->{number} // () unless exists $node->{numbers};
-
- return keys %{ $self->{numbers} }
- }
-
- sub add_words {
- my ($self, @words) = @_;
- $self->{number_of_words} = @ARGV;
- for my $word_index (0 .. $#words) {
- $self->add_char($_)
- for split //, "$words[$word_index]<$word_index>";
- }
- my $text_length = length $self->{text};
- for my $node (@{ $self->{nodes} }) {
- next if $node->{start} < 0;
- my $text = $node->{end} > $text_length
- ? substr $self->{text}, $node->{start}
- : substr $self->{text}, $node->{start},
- $node->{end} - $node->{start};
- $node->{text} = $text;
- if (my ($number) = $text =~ /<([0-9]+)>/) {
- $node->{number} = $number;
- }
- }
- $self->add_numbers(0);
- }
-
- sub _add_suffix_link {
- my ($self, $node) = @_;
- $self->{nodes}[ $self->{need_suffix_link} ]{link} = $node
- if $self->{need_suffix_link} > 0;
- $self->{need_suffix_link} = $node;
- }
-
- sub active_edge { substr $_[0]{text}, $_[0]{active_edge}, 1 }
-
- sub walk_down {
- my ($self, $next) = @_;
- $next //= 0;
- my $position = $self->{position};
- if ($self->{active_length}
- >= $self->{nodes}[$next]->edge_length($position)
- ) {
- $self->{active_edge}
- += $self->{nodes}[$next]->edge_length($position);
- $self->{active_length}
- -= $self->{nodes}[$next]->edge_length($position);
- $self->{active_node} = $next;
- return 1
- }
- return
- }
-
- sub new_node {
- my ($self, $start, $end) = @_;
- $self->{nodes}[ ++$self->{current_node} ]
- = 'My::Node'->new($start, $end);
- $self->{current_node}
- }
-
- sub add_char {
- my ($self, $char) = @_;
- substr $self->{text}, ++$self->{position}, 1, $char;
- $self->{need_suffix_link} = -1;
- ++$self->{remainder};
- while ($self->{remainder} > 0) {
- $self->{active_edge} = $self->{position}
- unless $self->{active_length};
- if (! exists
- $self->{nodes}[ $self->{active_node} ]{next}{ $self->active_edge }
- ) {
- $self->{nodes}[ $self->{active_node} ]
- {next}{ $self->active_edge }
- = $self->new_node($self->{position}, 'INF');
- $self->_add_suffix_link($self->{active_node}); # Rule 2.
- } else {
- my $next = $self->{nodes}[ $self->{active_node} ]
- {next}{ $self->active_edge };
- next if $self->walk_down($next); # Observation 2.
-
- # Observation 2.
- if ($char eq substr $self->{text},
- $self->{nodes}[$next]{start} + $self->{active_length}, 1
- ) {
- ++$self->{active_length};
- $self->_add_suffix_link($self->{active_node}); # Observation 3.
- last
- }
- my $split = $self->new_node($self->{nodes}[$next]{start},
- $self->{nodes}[$next]{start} + $self->{active_length});
- $self->{nodes}[ $self->{active_node} ]{next}
- { $self->active_edge } = $split;
- my $leaf = $self->new_node($self->{position}, 'INF');
- $self->{nodes}[$split]{next}{$char} = $leaf;
- $self->{nodes}[$next]{start} += $self->{active_length};
- $self->{nodes}[$split]{next}{ substr $self->{text},
- $self->{nodes}[$next]{start}, 1 } = $next;
- $self->_add_suffix_link($split); # Rule 2.
- }
- -- $self->{remainder};
-
- if ($self->{active_node} == $self->{root}
- && $self->{active_length} > 0 # Rule 1.
- ) {
- --$self->{active_length};
- $self->{active_edge}
- = $self->{position} - $self->{remainder} + 1;
- } else {
- $self->{nodes}[ $self->{active_node} ]{link} //= 0;
- $self->{active_node}
- = $self->{nodes}[ $self->{active_node} ]{link} > 0
- ? $self->{nodes}[ $self->{active_node} ]{link}
- : $self->{root}; # Rule 3.
- }
- }
- }
-
- my @lcs;
- sub longest_common_substring {
- my ($self, $node_index, $string) = @_;
- @lcs = ("") unless $node_index;
- my $node = $self->{nodes}[$node_index];
-
- if ($self->{number_of_words} == keys %{ $node->{numbers} }) {
- my $compare_lengths = length $string <=> length $lcs[0];
- push @lcs, $string if $compare_lengths == 0;
- @lcs = ($string) if $compare_lengths == 1;
- }
-
- for my $next_char (keys %{ $node->{next} }) {
- my $next_index = $node->{next}{$next_char};
- my $next = $self->{nodes}[$next_index];
- $self->longest_common_substring(
- $next_index,
- "$string$next->{text}");
- }
- return @lcs
- }
-}
-
-my $o = 'My::Suffix::Tree'->new;
-$o->add_words(@ARGV);
-
-say "<$_>" for $o->longest_common_substring(0, "");
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 57ac51b970..81990d32e8 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,30 +1,40 @@
{
- "xAxis" : {
- "type" : "category"
+ "chart" : {
+ "type" : "column"
},
"drilldown" : {
"series" : [
{
- "id" : "Andrezgz",
+ "name" : "Andrezgz",
"data" : [
[
"Perl 5",
2
]
],
- "name" : "Andrezgz"
+ "id" : "Andrezgz"
},
{
- "id" : "Duane Powell",
"data" : [
[
"Perl 5",
2
]
],
+ "id" : "Duane Powell",
"name" : "Duane Powell"
},
{
+ "name" : "E. Choroba",
+ "data" : [
+ [
+ "Perl 5",
+ 2
+ ]
+ ],
+ "id" : "E. Choroba"
+ },
+ {
"id" : "Laurent Rosenfeld",
"data" : [
[
@@ -43,26 +53,27 @@
"name" : "Laurent Rosenfeld"
},
{
- "name" : "Ozzy",
- "id" : "Ozzy",
"data" : [
[
"Perl 6",
1
]
- ]
+ ],
+ "id" : "Ozzy",
+ "name" : "Ozzy"
},
{
+ "name" : "Roger Bell West",
+ "id" : "Roger Bell West",
"data" : [
[
"Perl 5",
2
]
- ],
- "id" : "Roger Bell West",
- "name" : "Roger Bell West"
+ ]
},
{
+ "id" : "Ruben Westerberg",
"data" : [
[
"Perl 5",
@@ -73,76 +84,51 @@
2
]
],
- "id" : "Ruben Westerberg",
"name" : "Ruben Westerberg"
},
{
"name" : "Simon Proctor",
- "id" : "Simon Proctor",
"data" : [
[
"Perl 6",
2
]
- ]
+ ],
+ "id" : "Simon Proctor"
},
{
+ "name" : "Steven Wilson",
"data" : [
[
"Perl 5",
1
]
],
- "id" : "Steven Wilson",
- "name" : "Steven Wilson"
+ "id" : "Steven Wilson"
}
]
},
- "legend" : {
- "enabled" : 0
- },
- "tooltip" : {
- "followPointer" : 1,
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "title" : {
- "text" : "Perl Weekly Challenge - 018"
- },
"subtitle" : {
- "text" : "[Champions: 8] Last updated at 2019-07-25 11:39:55 GMT"
- },
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- },
- "borderWidth" : 0
- }
- },
- "chart" : {
- "type" : "column"
+ "text" : "[Champions: 9] Last updated at 2019-07-25 22:47:58 GMT"
},
"series" : [
{
- "colorByPoint" : 1,
"name" : "Perl Weekly Challenge - 018",
"data" : [
{
"y" : 2,
- "name" : "Andrezgz",
- "drilldown" : "Andrezgz"
+ "drilldown" : "Andrezgz",
+ "name" : "Andrezgz"
},
{
- "name" : "Duane Powell",
+ "y" : 2,
"drilldown" : "Duane Powell",
- "y" : 2
+ "name" : "Duane Powell"
+ },
+ {
+ "y" : 2,
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba"
},
{
"name" : "Laurent Rosenfeld",
@@ -150,31 +136,60 @@
"y" : 4
},
{
- "drilldown" : "Ozzy",
"name" : "Ozzy",
+ "drilldown" : "Ozzy",
"y" : 1
},
{
- "name" : "Roger Bell West",
"drilldown" : "Roger Bell West",
+ "name" : "Roger Bell West",
"y" : 2
},
{
"y" : 4,
- "name" : "Ruben Westerberg",
- "drilldown" : "Ruben Westerberg"
+ "drilldown" : "Ruben Westerberg",
+ "name" : "Ruben Westerberg"
},
{
- "y" : 2,
+ "name" : "Simon Proctor",
"drilldown" : "Simon Proctor",
- "name" : "Simon Proctor"
+ "y" : 2
},
{
+ "y" : 1,
"name" : "Steven Wilson",
- "drilldown" : "Steven Wilson",
- "y" : 1
+ "drilldown" : "Steven Wilson"
}
- ]
+ ],
+ "colorByPoint" : 1
+ }
+ ],
+ "tooltip" : {
+ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
+ "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
+ "followPointer" : 1
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge - 018"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
}
- ]
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
+ }
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "legend" : {
+ "enabled" : 0
+ }
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 8250cbcd98..1bc4bd34ae 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,9 +1,19 @@
{
- "title" : {
- "text" : "Perl Weekly Challenge Contributions - 2019"
- },
"series" : [
{
+ "name" : "Contributions",
+ "dataLabels" : {
+ "format" : "{point.y:.0f}",
+ "color" : "#FFFFFF",
+ "align" : "right",
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ },
+ "y" : 10,
+ "enabled" : "true",
+ "rotation" : -90
+ },
"data" : [
[
"Blog",
@@ -11,45 +21,26 @@
],
[
"Perl 5",
- 728
+ 730
],
[
"Perl 6",
417
]
- ],
- "name" : "Contributions",
- "dataLabels" : {
- "enabled" : "true",
- "color" : "#FFFFFF",
- "format" : "{point.y:.0f}",
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- },
- "align" : "right",
- "y" : 10,
- "rotation" : -90
- }
+ ]
}
],
"legend" : {
"enabled" : "false"
},
- "chart" : {
- "type" : "column"
- },
"xAxis" : {
+ "type" : "category",
"labels" : {
"style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
}
- },
- "type" : "category"
- },
- "subtitle" : {
- "text" : "Last updated at 2019-07-25 11:40:01 GMT"
+ }
},
"yAxis" : {
"min" : 0,
@@ -59,5 +50,14 @@
},
"tooltip" : {
"pointFormat" : "<b>{point.y:.0f}</b>"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions - 2019"
+ },
+ "subtitle" : {
+ "text" : "Last updated at 2019-07-25 22:48:06 GMT"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 14f3098b8b..c1adbe04f3 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,122 +1,7 @@
{
- "title" : {
- "text" : "Perl Weekly Challenge Language"
- },
- "chart" : {
- "type" : "column"
- },
- "xAxis" : {
- "type" : "category"
- },
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-25 11:40:01 GMT"
- },
- "series" : [
- {
- "colorByPoint" : "true",
- "name" : "Perl Weekly Challenge Languages",
- "data" : [
- {
- "drilldown" : "001",
- "y" : 123,
- "name" : "#001"
- },
- {
- "name" : "#002",
- "y" : 104,
- "drilldown" : "002"
- },
- {
- "name" : "#003",
- "drilldown" : "003",
- "y" : 66
- },
- {
- "y" : 84,
- "drilldown" : "004",
- "name" : "#004"
- },
- {
- "name" : "#005",
- "y" : 66,
- "drilldown" : "005"
- },
- {
- "name" : "#006",
- "drilldown" : "006",
- "y" : 47
- },
- {
- "drilldown" : "007",
- "y" : 54,
- "name" : "#007"
- },
- {
- "name" : "#008",
- "drilldown" : "008",
- "y" : 67
- },
- {
- "name" : "#009",
- "drilldown" : "009",
- "y" : 65
- },
- {
- "name" : "#010",
- "drilldown" : "010",
- "y" : 58
- },
- {
- "y" : 77,
- "drilldown" : "011",
- "name" : "#011"
- },
- {
- "name" : "#012",
- "drilldown" : "012",
- "y" : 81
- },
- {
- "y" : 74,
- "drilldown" : "013",
- "name" : "#013"
- },
- {
- "name" : "#014",
- "drilldown" : "014",
- "y" : 94
- },
- {
- "drilldown" : "015",
- "y" : 90,
- "name" : "#015"
- },
- {
- "drilldown" : "016",
- "y" : 64,
- "name" : "#016"
- },
- {
- "name" : "#017",
- "drilldown" : "017",
- "y" : 77
- },
- {
- "name" : "#018",
- "drilldown" : "018",
- "y" : 18
- }
- ]
- }
- ],
"legend" : {
"enabled" : "false"
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
"drilldown" : {
"series" : [
{
@@ -157,7 +42,6 @@
},
{
"id" : "003",
- "name" : "003",
"data" : [
[
"Perl 5",
@@ -171,10 +55,10 @@
"Blog",
8
]
- ]
+ ],
+ "name" : "003"
},
{
- "name" : "004",
"data" : [
[
"Perl 5",
@@ -189,10 +73,10 @@
9
]
],
- "id" : "004"
+ "id" : "004",
+ "name" : "004"
},
{
- "name" : "005",
"data" : [
[
"Perl 5",
@@ -207,9 +91,11 @@
11
]
],
- "id" : "005"
+ "id" : "005",
+ "name" : "005"
},
{
+ "name" : "006",
"id" : "006",
"data" : [
[
@@ -224,11 +110,9 @@
"Blog",
6
]
- ],
- "name" : "006"
+ ]
},
{
- "id" : "007",
"data" : [
[
"Perl 5",
@@ -243,9 +127,11 @@
8
]
],
+ "id" : "007",
"name" : "007"
},
{
+ "id" : "008",
"data" : [
[
"Perl 5",
@@ -260,12 +146,9 @@
9
]
],
- "name" : "008",
- "id" : "008"
+ "name" : "008"
},
{
- "id" : "009",
- "name" : "009",
"data" : [
[
"Perl 5",
@@ -279,10 +162,11 @@
"Blog",
11
]
- ]
+ ],
+ "id" : "009",
+ "name" : "009"
},
{
- "id" : "010",
"name" : "010",
"data" : [
[
@@ -297,10 +181,11 @@
"Blog",
9
]
- ]
+ ],
+ "id" : "010"
},
{
- "id" : "011",
+ "name" : "011",
"data" : [
[
"Perl 5",
@@ -315,7 +200,7 @@
8
]
],
- "name" : "011"
+ "id" : "011"
},
{
"data" : [
@@ -332,11 +217,10 @@
9
]
],
- "name" : "012",
- "id" : "012"
+ "id" : "012",
+ "name" : "012"
},
{
- "id" : "013",