diff options
| -rw-r--r-- | challenge-174/mohammad-anwar/java/theweeklychallenge/PermutationRanking.java | 124 | ||||
| -rw-r--r-- | challenge-174/mohammad-anwar/perl/ch-2.pl | 49 | ||||
| -rw-r--r-- | challenge-174/mohammad-anwar/python/ch-2.py | 53 | ||||
| -rw-r--r-- | challenge-174/mohammad-anwar/raku/ch-2.raku | 47 | ||||
| -rw-r--r-- | challenge-174/mohammad-anwar/swift/ch-2.swift | 153 | ||||
| -rw-r--r-- | stats/pwc-current.json | 184 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 46 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 2506 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 784 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 98 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 40 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 28 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 58 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 40 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 98 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 36 |
19 files changed, 2482 insertions, 2056 deletions
diff --git a/challenge-174/mohammad-anwar/java/theweeklychallenge/PermutationRanking.java b/challenge-174/mohammad-anwar/java/theweeklychallenge/PermutationRanking.java new file mode 100644 index 0000000000..5436f82c01 --- /dev/null +++ b/challenge-174/mohammad-anwar/java/theweeklychallenge/PermutationRanking.java @@ -0,0 +1,124 @@ +package theweeklychallenge; + +/* + +Week 174: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-174 + +Task #2: Permutation Ranking + + You are given a list of integers with no duplicates, e.g. [0, 1, 2]. + + Write two functions, permutation2rank() which will take the list + and determine its rank (starting at 0) in the set of possible + permutations arranged in lexicographic order, and rank2permutation() + which will take the list and a rank number and produce just that + permutation. + +Compile and Run: + + mohammad-anwar/java$ javac theweeklychallenge/PermutationRanking.java + mohammad-anwar/java$ java theweeklychallenge.PermutationRanking + +*/ + +import java.util.List; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.stream.Collectors; +import junit.framework.TestCase; +import static junit.framework.Assert.*; + +public class PermutationRanking extends TestCase { + + public static void main(String[] args) { + junit.textui.TestRunner.run( + theweeklychallenge.PermutationRanking.class); + } + + public void test_permutation2rank() { + int[] n = {1, 0, 2}; + List<List<Integer>> got = permutation2rank(n); + List<List<Integer>> exp = List.of( + List.of(0, 1, 2), + List.of(0, 2, 1), + List.of(1, 0, 2), + List.of(1, 2, 0), + List.of(2, 0, 1), + List.of(2, 1, 0) + ); + assertEquals(exp, got); + } + + public void test_rank2permutation() { + int[] n = {1, 0, 2}; + Integer[] got = rank2permutation(n, 1); + Integer[] exp = {0, 2, 1}; + assertEquals(Arrays.toString(exp), Arrays.toString(got)); + } + + public static List<List<Integer>> permutation2rank(int[] n) { + List<List<Integer>> perm = new ArrayList<>(); + Permutation(0, n, perm); + return sortPermutations(perm); + } + + public static Integer[] rank2permutation(int[] n, int r) { + List<List<Integer>> rank = permutation2rank(n); + List<Integer> p = rank.get(r); + return p.toArray(new Integer[p.size()]); + } + + private static List<List<Integer>> sortPermutations(List<List<Integer>> perm) { + String[] strPerm = new String[perm.size()]; + int i = 0; + for(List<Integer> _perm : perm) { + strPerm[i] = _perm.stream() + .map(String::valueOf) + .collect(Collectors.joining("")); + i++; + } + + Arrays.sort(strPerm); + + List<List<Integer>> sortedPerm = new ArrayList<>(); + for(int j = 0; j < strPerm.length; j++) { + String str = strPerm[j]; + String[] strArray = str.split(""); + int[] intArray = new int[strArray.length]; + + for(int k = 0; k < strArray.length; k++) { + intArray[k] = Integer.parseInt(strArray[k]); + } + + List<Integer> intList = new ArrayList<Integer>(intArray.length); + for(int e : intArray) { + intList.add(e); + } + + sortedPerm.add(intList); + } + + return sortedPerm; + } + + // https://www.w3resource.com/java-exercises/array/java-array-exercise-68.php + private static void Permutation(int i, int[] nums, List<List<Integer>> result) { + if (i == nums.length - 1) { + List<Integer> list = new ArrayList<>(); + for(int n : nums) list.add(n); + result.add(list); + } else { + for(int j = i, l = nums.length; j < l; j++) { + int temp = nums[j]; + nums[j] = nums[i]; + nums[i] = temp; + Permutation(i + 1, nums, result); + temp = nums[j]; + nums[j] = nums[i]; + nums[i] = temp; + } + } + } +} diff --git a/challenge-174/mohammad-anwar/perl/ch-2.pl b/challenge-174/mohammad-anwar/perl/ch-2.pl new file mode 100644 index 0000000000..a681a40460 --- /dev/null +++ b/challenge-174/mohammad-anwar/perl/ch-2.pl @@ -0,0 +1,49 @@ +#!/usr/bin/perl + +=head1 + +Week 174: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-174 + +Task #2: Permutation Ranking + + You are given a list of integers with no duplicates, e.g. [0, 1, 2]. + + Write two functions, permutation2rank() which will take the list + and determine its rank (starting at 0) in the set of possible + permutations arranged in lexicographic order, and rank2permutation() + which will take the list and a rank number and produce just that + permutation. + +=cut + +use v5.36; +use Test2::V0; +use Algorithm::Combinatorics qw(permutations); + +is permutation2rank([1, 0, 2]), + [ [0, 1, 2], + [0, 2, 1], + [1, 0, 2], + [1, 2, 0], + [2, 0, 1], + [2, 1, 0], + ]; + +is rank2permutation([0, 1, 2], 1), + [0, 2, 1]; + +done_testing; + +# +# +# METHODS + +sub permutation2rank($array) { + return [ permutations([sort @$array]) ]; +} + +sub rank2permutation($array, $rank) { + return ( @{permutation2rank($array)} )[$rank]; +} diff --git a/challenge-174/mohammad-anwar/python/ch-2.py b/challenge-174/mohammad-anwar/python/ch-2.py new file mode 100644 index 0000000000..96b0492d4f --- /dev/null +++ b/challenge-174/mohammad-anwar/python/ch-2.py @@ -0,0 +1,53 @@ +#!/usr/bin/python3 + +''' + +Week 174: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-174 + +Task #2: Permutation Ranking + + You are given a list of integers with no duplicates, e.g. [0, 1, 2]. + + Write two functions, permutation2rank() which will take the list + and determine its rank (starting at 0) in the set of possible + permutations arranged in lexicographic order, and rank2permutation() + which will take the list and a rank number and produce just that + permutation. + +''' + +import unittest +import itertools + +def permutation2rank(array): + array.sort() + return list(itertools.permutations(array)) + +def rank2permutation(array, rank): + p2r = permutation2rank(array) + return p2r[rank] + +# +# +# Unit test class + +class TestPermutationRanking(unittest.TestCase): + def test_permutation2rank(self): + exp = [ (0, 1, 2), + (0, 2, 1), + (1, 0, 2), + (1, 2, 0), + (2, 0, 1), + (2, 1, 0), + ] + got = permutation2rank([1, 0, 2]) + self.assertEqual(exp, got) + + def test_rank2permutation(self): + exp = (0, 2, 1) + got = rank2permutation([1, 0, 2], 1) + self.assertEqual(exp, got) + +unittest.main() diff --git a/challenge-174/mohammad-anwar/raku/ch-2.raku b/challenge-174/mohammad-anwar/raku/ch-2.raku new file mode 100644 index 0000000000..51bf7b271b --- /dev/null +++ b/challenge-174/mohammad-anwar/raku/ch-2.raku @@ -0,0 +1,47 @@ +#!/usr/bin/env raku + +=begin pod + +Week 174: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-174 + +Task #2: Permutation Ranking + + You are given a list of integers with no duplicates, e.g. [0, 1, 2]. + + Write two functions, permutation2rank() which will take the list + and determine its rank (starting at 0) in the set of possible + permutations arranged in lexicographic order, and rank2permutation() + which will take the list and a rank number and produce just that + permutation. + +=end pod + +use Test; + +is permutation2rank([1, 0, 2]), + [ [0, 1, 2], + [0, 2, 1], + [1, 0, 2], + [1, 2, 0], + [2, 0, 1], + [2, 1, 0], + ]; + +is rank2permutation([0, 1, 2], 1), + [0, 2, 1]; + +done-testing; + +# +# +# METHODS + +sub permutation2rank($array) { + return [ $array.sort.permutations ]; +} + +sub rank2permutation($array, $rank) { + return @(permutation2rank($array)).[$rank]; +} diff --git a/challenge-174/mohammad-anwar/swift/ch-2.swift b/challenge-174/mohammad-anwar/swift/ch-2.swift new file mode 100644 index 0000000000..3817a18e08 --- /dev/null +++ b/challenge-174/mohammad-anwar/swift/ch-2.swift @@ -0,0 +1,153 @@ +import Foundation + +/* + +Week 174: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-174 + +Task #2: Permutation Ranking + + You are given a list of integers with no duplicates, e.g. [0, 1, 2]. + + Write two functions, permutation2rank() which will take the list + and determine its rank (starting at 0) in the set of possible + permutations arranged in lexicographic order, and rank2permutation() + which will take the list and a rank number and produce just that + permutation. + +ACTION: + + $ swift ch-2.swift "1,0,2" 1 + +*/ + +enum ParamError: Error { + case missingList + case missingRank + case invalidList + case invalidRank +} + +do { + let paramCount:Int = Int(CommandLine.argc) + + if paramCount <= 1 { + throw ParamError.missingList + } + + if paramCount <= 2 { + throw ParamError.missingRank + } + + let list:String = CommandLine.arguments[1] + let rank:Int = Int(CommandLine.arguments[2])! + + if isValid(list) { + if rank >= 0 { + let arrays:[Int] = (list.components(separatedBy: ",")).map { Int($0)! } + print(rank2permutation(arrays, rank)) + } + else { + throw ParamError.invalidRank + } + } + else { + throw ParamError.invalidList + } +} +catch ParamError.missingList { + print("Missing list.") +} +catch ParamError.missingRank { + print("Missing rank.") +} +catch ParamError.invalidList { + print("Invalid list.") +} +catch ParamError.invalidRank { + print("Invalid rank.") +} +catch let error { + print(error) +} + +// +// +// Functions + +func permutation2rank(_ arrays:[Int]) -> [[Int]] { + return sortPermutations(arrays.allPermutations()) +} + +func rank2permutation(_ arrays:[Int], _ rank:Int) -> [Int] { + let perms:[[Int]] = permutation2rank(arrays) + return perms[rank] +} + +func sortPermutations(_ perms: [[Int]]) -> [[Int]] { + var strArrays:[String] = [] + for entry in perms { + strArrays.append(entry.reduce("") { $0 + "\($1)" }) + } + + strArrays.sort() + + var intArrays:[[Int]] = [] + for entry in strArrays { + intArrays.append(String(entry).compactMap { Int(String($0)) }) + } + + return intArrays +} + +func isValid(_ list:String) -> Bool { + let pattern = "^[\\-?\\d\\,?\\s?]+$" + let regex = try! NSRegularExpression(pattern: pattern) + let range = NSRange(location: 0, length: list.utf16.count) + + if regex.firstMatch(in: list, options: [], range: range) != nil { + return true + } + else { + return false + } +} + +// +// +// Array extension borrowed from SO. +// https://stackoverflow.com/questions/30586711/order-array-of-objects-into-every-possible-sequence-in-swift + +extension Array { + private var decompose : (head: Element, tail: [Element])? { + return (count > 0) ? (self[0], Array(self[1..<count])) : nil + } + + private func between<T>(x: T, ys: [T]) -> [[T]] { + if let (head, tail) = ys.decompose { + return [[x] + ys] + between(x: x, ys: tail).map { [head] + $0 } + } else { + return [[x]] + } + } + + private func permutations<T>(xs: [T]) -> [[T]] { + if let (head, tail) = xs.decompose { + return permutations(xs: tail) >>= { permTail in + self.between(x: head, ys: permTail) + } + } else { + return [[]] + } + } + + func allPermutations() -> [[Element]] { + return permutations(xs: self) + } +} + +infix operator >>= +func >>=<A, B>(xs: [A], f: (A) -> [B]) -> [B] { + return xs.map(f).reduce([], +) +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 0fff4ea13b..920f98e788 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -2,86 +2,70 @@ "chart" : { "type" : "column" }, - "xAxis" : { - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "tooltip" : { - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" - }, - "title" : { - "text" : "The Weekly Challenge - 174" - }, "series" : [ { - "colorByPoint" : 1, "name" : "The Weekly Challenge - 174", + "colorByPoint" : 1, "data" : [ { - "y" : 2, "name" : "Cheok-Yin Fung", - "drilldown" : "Cheok-Yin Fung" + "drilldown" : "Cheok-Yin Fung", + "y" : 2 }, { + "name" : "E. Choroba", "drilldown" : "E. Choroba", - "y" : 2, - "name" : "E. Choroba" + "y" : 2 }, { "drilldown" : "James Smith", - "y" : 3, - "name" : "James Smith" + "name" : "James Smith", + "y" : 3 }, { "name" : "Kjetil Skotheim", - "y" : 2, - "drilldown" : "Kjetil Skotheim" + "drilldown" : "Kjetil Skotheim", + "y" : 2 }, { - "drilldown" : "Laurent Rosenfeld", "y" : 3, + "drilldown" : "Laurent Rosenfeld", "name" : "Laurent Rosenfeld" }, { + "y" : 8, "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 8 + "name" : "Luca Ferrari" }, { "y" : 2, - "name" : "Mark Anderson", - "drilldown" : "Mark Anderson" + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" }, { - "drilldown" : "Mohammad S Anwar", + "y" : 4, "name" : "Mohammad S Anwar", - "y" : 2 + "drilldown" : "Mohammad S Anwar" }, { - "y" : 3, "name" : "Peter Campbell Smith", - "drilldown" : "Peter Campbell Smith" + "drilldown" : "Peter Campbell Smith", + "y" : 3 }, { "y" : 2, - "name" : "PokGoPun", - "drilldown" : "PokGoPun" + "drilldown" : "PokGoPun", + "name" : "PokGoPun" }, { - "drilldown" : "Robert DiCicco", "y" : 3, - "name" : "Robert DiCicco" + "name" : "Robert DiCicco", + "drilldown" : "Robert DiCicco" }, { "y" : 5, - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West" + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West" }, { "drilldown" : "Simon Proctor", @@ -90,36 +74,38 @@ }, { "y" : 5, - "name" : "Stephen G Lynn", - "drilldown" : "Stephen G Lynn" + "drilldown" : "Stephen G Lynn", + "name" : "Stephen G Lynn" }, { - "drilldown" : "Ulrich Rieke", "y" : 3, + "drilldown" : "Ulrich Rieke", "name" : "Ulrich Rieke" }, { - "y" : 3, + "drilldown" : "W. Luis Mochan", "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan" + "y" : 3 } ] } ], - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } + "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/>" + }, + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "[Champions: 16] Last updated at 2022-07-21 22:35:38 GMT" }, "legend" : { "enabled" : 0 }, - "subtitle" : { - "text" : "[Champions: 16] Last updated at 2022-07-21 08:03:16 GMT" + "title" : { + "text" : "The Weekly Challenge - 174" }, "drilldown" : { "series" : [ @@ -134,14 +120,14 @@ ] }, { - "id" : "E. Choroba", - "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "E. Choroba", + "name" : "E. Choroba" }, { "data" : [ @@ -154,18 +140,18 @@ 1 ] ], - "id" : "James Smith", - "name" : "James Smith" + "name" : "James Smith", + "id" : "James Smith" }, { - "name" : "Kjetil Skotheim", - "id" : "Kjetil Skotheim", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Kjetil Skotheim", + "id" : "Kjetil Skotheim" }, { "name" : "Laurent Rosenfeld", @@ -186,6 +172,8 @@ ] }, { + "name" : "Luca Ferrari", + "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -195,9 +183,7 @@ "Blog", 6 ] - ], - "name" : "Luca Ferrari", - "id" : "Luca Ferrari" + ] }, { "data" : [ @@ -206,24 +192,26 @@ 2 ] ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "id" : "Mark Anderson" }, { - "name" : "Mohammad S Anwar", - "id" : "Mohammad S Anwar", "data" : [ [ "Perl", - 1 + 2 ], [ "Raku", - 1 + 2 ] - ] + ], + "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" }, { + "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -233,23 +221,21 @@ "Blog", 1 ] - ], - "name" : "Peter Campbell Smith", - "id" : "Peter Campbell Smith" + ] }, { - "name" : "PokGoPun", - "id" : "PokGoPun", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "PokGoPun", + "id" : "PokGoPun" }, { - "id" : "Robert DiCicco", "name" : "Robert DiCicco", + "id" : "Robert DiCicco", "data" : [ [ "Perl", @@ -262,8 +248,6 @@ ] }, { - "name" : "Roger Bell_West", - "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -277,19 +261,23 @@ "Blog", 1 ] - ] + ], + "name" : "Roger Bell_West", + "id" : "Roger Bell_West" }, { + "id" : "Simon Proctor", + "name" : "Simon Proctor", "data" : [ [ "Raku", 1 ] - ], - "name" : "Simon Proctor", - "id" : "Simon Proctor" + ] }, { + "name" : "Stephen G Lynn", + "id" : "Stephen G Lynn", "data" : [ [ "Perl", @@ -303,11 +291,11 @@ "Blog", 1 ] - ], - "id" : "Stephen G Lynn", - "name" : "Stephen G Lynn" + ] }, { + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -317,9 +305,7 @@ "Raku", 1 ] - ], - "id" : "Ulrich Rieke", - "name" : "Ulrich Rieke" + ] }, { "data" : [ @@ -336,5 +322,19 @@ "id" : "W. Luis Mochan" } ] + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index cb754f353c..bfce21190b 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,39 +1,32 @@ { - "legend" : { - "enabled" : "false" - }, - "subtitle" : { - "text" : "Last updated at 2022-07-21 08:03:16 GMT" - }, "yAxis" : { "min" : 0, "title" : { "text" : null } }, - "xAxis" : { - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - }, - "type" : "category" + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2022]" + }, + "legend" : { + "enabled" : "false" + }, + "subtitle" : { + "text" : "Last updated at 2022-07-21 22:35:38 GMT" }, "series" : [ { - "name" : "Contributions", "dataLabels" : { - "rotation" : -90, "style" : { "fontSize" : "13px", "fontFamily" : "Verdana, sans-serif" }, + "color" : "#FFFFFF", + "format" : "{point.y:.0f}", "enabled" : "true", "y" : 10, - "format" : "{point.y:.0f}", "align" : "right", - "color" : "#FFFFFF" + "rotation" : -90 }, "data" : [ [ @@ -42,20 +35,27 @@ ], [ "Perl", - 8470 + 8471 ], [ "Raku", - 5043 + 5044 ] - ] + ], + "name" : "Contributions" } ], "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" }, - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2022]" + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } }, "chart" : { "type" : "column" diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index e7414c1188..f1b8235406 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,913 +1,9 @@ { - "chart" : { - "type" : "column" - }, - "xAxis" : { - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "title" : { - "text" : "The Weekly Challenge Language" - }, - "tooltip" : { - "followPointer" : "true", - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", - "headerFormat" : "<span style=\"font-size:11px\"></span>" - }, - "series" : [ - { - "data" : [ - { - "y" : 161, - "name" : "#001", - "drilldown" : "001" - }, - { - "drilldown" : "002", - "name" : "#002", - "y" : 125 - }, - { - "name" : "#003", - "y" : 83, - "drilldown" : "003" - }, - { - "y" : 99, - "name" : "#004", - "drilldown" : "004" - }, - { - "y" : 78, - "name" : "#005", - "drilldown" : "005" - }, - { - "y" : 58, - "name" : "#006", - "drilldown" : "006" - }, - { - "drilldown" : "007", - "name" : "#007", - "y" : 65 - }, - { - "y" : 78, - "name" : "#008", - "drilldown" : "008" - }, - { - "drilldown" : "009", - "y" : 76, - "name" : "#009" - }, - { - "drilldown" : "010", - "name" : "#010", - "y" : 65 - }, - { - "drilldown" : "011", - "y" : 85, - "name" : "#011" - }, - { - "name" : "#012", - "y" : 89, - "drilldown" : "012" - }, - { - "name" : "#013", - "y" : 85, - "drilldown" : "013" - }, - { - "y" : 101, - "name" : "#014", - "drilldown" : "014" - }, - { - "drilldown" : "015", - "y" : 99, - "name" : "#015" - }, - { - "drilldown" : "016", - "name" : "#016", - "y" : 71 - }, - { - "drilldown" : "017", - "name" : "#017", - "y" : 84 - }, - { - "drilldown" : "018", - "name" : "#018", - "y" : 81 - }, - { - "drilldown" : "019", - "name" : "#019", - "y" : 103 - }, - { - "drilldown" : "020", - "name" : "#020", - "y" : 101 - }, - { - "drilldown" : "021", - "name" : "#021", - "y" : 72 - }, - { - "y" : 68, - "name" : "#022", < |
