aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-159/ulrich-rieke/cpp/ch-1.cpp35
-rw-r--r--challenge-159/ulrich-rieke/cpp/ch-2.cpp41
-rw-r--r--challenge-159/ulrich-rieke/haskell/ch-1.hs36
-rw-r--r--challenge-159/ulrich-rieke/haskell/ch-2.hs45
-rw-r--r--challenge-159/ulrich-rieke/perl/ch-1.pl72
-rw-r--r--challenge-159/ulrich-rieke/perl/ch-2.pl45
-rw-r--r--challenge-159/ulrich-rieke/raku/ch-1.raku28
-rw-r--r--challenge-159/ulrich-rieke/raku/ch-2.raku37
-rw-r--r--stats/pwc-current.json251
-rw-r--r--stats/pwc-language-breakdown-summary.json76
-rw-r--r--stats/pwc-language-breakdown.json1128
-rw-r--r--stats/pwc-leaders.json420
-rw-r--r--stats/pwc-summary-1-30.json36
-rw-r--r--stats/pwc-summary-121-150.json44
-rw-r--r--stats/pwc-summary-151-180.json30
-rw-r--r--stats/pwc-summary-181-210.json28
-rw-r--r--stats/pwc-summary-211-240.json48
-rw-r--r--stats/pwc-summary-241-270.json70
-rw-r--r--stats/pwc-summary-31-60.json30
-rw-r--r--stats/pwc-summary-61-90.json18
-rw-r--r--stats/pwc-summary-91-120.json114
-rw-r--r--stats/pwc-summary.json58
22 files changed, 1524 insertions, 1166 deletions
diff --git a/challenge-159/ulrich-rieke/cpp/ch-1.cpp b/challenge-159/ulrich-rieke/cpp/ch-1.cpp
new file mode 100644
index 0000000000..fd619c7af4
--- /dev/null
+++ b/challenge-159/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,35 @@
+#include <vector>
+#include <iostream>
+#include <numeric>
+#include <utility>
+#include <cstdlib>
+#include <algorithm>
+
+int main( int argc, char * argv[] ) {
+ int n = std::atoi( argv[1] ) ;
+ while ( n <= 0 ) {
+ std::cout << "Please enter an integer greater than 0!\n" ;
+ std::cin >> n ;
+ }
+ std::vector<int> numerators( n ) ;
+ std::vector<int> denominators( n + 1 ) ;
+ std::iota( numerators.begin( ) , numerators.end( ) , 1) ;
+ std::iota( denominators.begin( ) , denominators.end( ) , 0 ) ;
+ std::vector<std::pair<int, int>> fractions ;
+ fractions.push_back( std::make_pair( 0 , 1 ) ) ;
+ for ( int i : numerators ) {
+ for ( int j : denominators ) {
+ if ( i < j && (std::lcm( i , j ) == i * j)) {
+ fractions.push_back( std::make_pair( i , j )) ;
+ }
+ }
+ }
+ std::sort( fractions.begin( ) , fractions.end( ) ,
+ []( const auto & a, const auto & b ) { return
+ (static_cast<double>(a.first) / static_cast<double>(a.second)) <
+ (static_cast<double>(b.first) / static_cast<double>(b.second));} );
+ for ( auto & p : fractions )
+ std::cout << p.first << '/' << p.second << ", " ;
+ std::cout << "1/1" << std::endl ;
+ return 0 ;
+}
diff --git a/challenge-159/ulrich-rieke/cpp/ch-2.cpp b/challenge-159/ulrich-rieke/cpp/ch-2.cpp
new file mode 100644
index 0000000000..85ae8382fe
--- /dev/null
+++ b/challenge-159/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,41 @@
+#include <iostream>
+#include <vector>
+#include <set>
+#include <cstdlib>
+
+//the smallest current divisor of a number is a prime number
+std::vector<int> primeDecompose( int n ) {
+ std::vector<int> primes ;
+ int current = 2 ;
+ while ( n != 1 ) {
+ if ( n % current == 0 ) {
+ primes.push_back( current ) ;
+ n /= current ;
+ }
+ else
+ current++ ;
+ }
+ return primes ;
+}
+
+int main( int argc, char * argv[] ) {
+ int n = std::atoi( argv[1] ) ;
+ while ( n <= 0 ) {
+ std::cout << "Please enter a number greater than 0!\n" ;
+ std::cin >> n ;
+ }
+ std::vector<int> primes { primeDecompose( n ) } ;
+ std::set<int> uniqueNums( primes.begin( ) , primes.end( ) ) ;
+ int pl = primes.size( ) ;
+ int ul = uniqueNums.size( ) ;
+ if ( pl == ul ) {
+ if ( pl % 2 == 0 )
+ std::cout << 1 ;
+ else
+ std::cout << -1 ;
+ }
+ else
+ std::cout << 0 ;
+ std::cout << std::endl ;
+ return 0 ;
+}
diff --git a/challenge-159/ulrich-rieke/haskell/ch-1.hs b/challenge-159/ulrich-rieke/haskell/ch-1.hs
new file mode 100644
index 0000000000..84c43f6cf3
--- /dev/null
+++ b/challenge-159/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,36 @@
+module Challenge159
+ where
+import Control.Applicative
+import Data.List ( sortBy )
+
+keepAskingForInput :: IO Int
+keepAskingForInput = do
+ putStrLn "Please enter a number greater than 0!"
+ number <- getLine
+ if ( read number ) > 0 then return $ read number
+ else do
+ keepAskingForInput
+
+solution :: Int -> [String]
+solution n =
+ let pairs = (,) <$> [1 .. n - 1] <*> [1 .. n]
+ fractions = filter (\p -> (fst p < snd p) && lcm ( fst p ) ( snd p)
+ == ( (fst p) * ( snd p ))) pairs
+ sorted = sortBy mySorter fractions
+ in ["0/1"] ++ map (\p -> (show $ fst p ) ++ "/" ++ ( show $ snd p ))
+ sorted ++ ["1/1"]
+
+mySorter :: (Int, Int) -> (Int,Int) -> Ordering
+mySorter (a , b ) ( c , d )
+ |firstFrac < secondFrac = LT
+ |firstFrac == secondFrac = EQ
+ |firstFrac > secondFrac = GT
+ where
+ firstFrac = fromIntegral a / fromIntegral b
+ secondFrac = fromIntegral c / fromIntegral d
+
+main :: IO ( )
+main = do
+ n <- keepAskingForInput
+ list <- return $ solution n
+ print list
diff --git a/challenge-159/ulrich-rieke/haskell/ch-2.hs b/challenge-159/ulrich-rieke/haskell/ch-2.hs
new file mode 100644
index 0000000000..1140981ce2
--- /dev/null
+++ b/challenge-159/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,45 @@
+module Challenge159_2
+ where
+import Control.Monad.State.Lazy
+import Data.List ( nub )
+
+divisors :: Int -> [Int]
+divisors n = [d | d <- [2..n] , mod n d == 0]
+
+decompose :: State (Int , [Int]) [Int]
+decompose = do
+ (d , factors ) <- get
+ if d == 1
+ then return factors
+ else do
+ put ( div d ( head $ divisors d ) , factors ++ [ head $ divisors d])
+ decompose
+
+myFactors :: Int -> [Int]
+myFactors n = evalState decompose ( n , [] )
+
+keepAskingForInput :: IO Int
+keepAskingForInput = do
+ putStrLn "Please enter a number greater than 0!"
+ number <- getLine
+ if ( read number ) > 0 then return $ read number
+ else do
+ keepAskingForInput
+
+solution :: Int -> Int
+solution n
+ |len1 == len2 && even len1 = 1
+ |len1 == len2 && odd len1 = -1
+ |otherwise = 0
+ where
+ factors :: [Int]
+ factors = myFactors n
+ len1 :: Int
+ len1 = length factors
+ len2 :: Int
+ len2 = length $ nub factors
+
+main :: IO ( )
+main = do
+ n <- keepAskingForInput
+ putStrLn $ show $ solution n
diff --git a/challenge-159/ulrich-rieke/perl/ch-1.pl b/challenge-159/ulrich-rieke/perl/ch-1.pl
new file mode 100644
index 0000000000..0ce8192017
--- /dev/null
+++ b/challenge-159/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+sub primeDecomposition {
+ my $number = shift ;
+ my @primes ;
+ my $current = 2 ;
+ do {
+ if ( $number % $current == 0 ) {
+ push @primes , $current ;
+ $number /= $current ;
+ }
+ else {
+ $current++ ;
+ }
+ } until ( $number == 1 ) ;
+ return @primes ;
+}
+
+sub myOrder { ($a->[0] / $a->[1]) <=> ($b->[0] / $b->[1] ) }
+
+sub isCoprime {
+ my $numbera = shift ;
+ my $numberb = shift ;
+ my @firstPrimes = primeDecomposition( $numbera ) ;
+ my @secondPrimes = primeDecomposition( $numberb ) ;
+ my %firstFactors ;
+ for my $n ( @firstPrimes ) {
+ $firstFactors{$n}++ ;
+ }
+ my %secondFactors ;
+ for my $n ( @secondPrimes ) {
+ $secondFactors{$n}++ ;
+ }
+ my @common ;
+ for my $n ( keys %firstFactors ) {
+ if ( exists( $secondFactors{$n} ) ) {
+ push @common , $n ;
+ }
+ }
+ if ( scalar( @common ) == 0 ) {
+ return 1 ;
+ }
+ else {
+ return 0 ;
+ }
+}
+
+my $n = $ARGV[0] ;
+while ( $n <= 0 ) {
+ say "enter a number greater than 0! Re-enter!" ;
+ $n = <STDIN> ;
+ chomp $n ;
+}
+#find all coprime pairs of numerators and denominators between 1 and n - 1
+#and n respectively and order them in ascending order
+my @pairs ;
+push @pairs , [0 , 1] ;
+for my $num (1 .. $n - 1) {
+ for my $denom( 0 .. $n ) {
+ if ( ($num < $denom ) && isCoprime( $num , $denom ) ) {
+ push @pairs , [$num , $denom] ;
+ }
+ }
+}
+my @sorted = sort myOrder @pairs ;
+for my $p ( @sorted ) {
+ print "$p->[0]/$p->[1], " ;
+}
+say "1/1" ;
diff --git a/challenge-159/ulrich-rieke/perl/ch-2.pl b/challenge-159/ulrich-rieke/perl/ch-2.pl
new file mode 100644
index 0000000000..cd2862013a
--- /dev/null
+++ b/challenge-159/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+sub primeDecomposition {
+ my $number = shift ;
+ my @primes ;
+ my $current = 2 ;
+ do {
+ if ( $number % $current == 0 ) {
+ push @primes , $current ;
+ $number /= $current ;
+ }
+ else {
+ $current++ ;
+ }
+ } until ( $number == 1 ) ;
+ return @primes ;
+}
+
+my $n = $ARGV[0] ;
+while ( $n <= 0 ) {
+ say "Only positive integers are allowed!" ;
+ $n = <STDIN> ;
+ chomp $n ;
+}
+my %primeFactors ;
+my @primes = primeDecomposition( $n ) ;
+for my $p ( @primes ) {
+ $primeFactors{$p}++ ;
+}
+my $primesLen = scalar( @primes ) ;
+my $factorLen = scalar( keys %primeFactors ) ;
+if ( $primesLen == $factorLen ) { #square-free
+ if ( $primesLen % 2 == 0 ) {
+ say 1 ;
+ }
+ else {
+ say -1 ;
+ }
+}
+else {
+ say 0 ;
+}
diff --git a/challenge-159/ulrich-rieke/raku/ch-1.raku b/challenge-159/ulrich-rieke/raku/ch-1.raku
new file mode 100644
index 0000000000..15691e9e97
--- /dev/null
+++ b/challenge-159/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,28 @@
+use v6 ;
+#find all numbers from 1 to n - 1 in the numerator and from 1 to n
+#in the denominator where numerator and denominator are coprime to
+#each other and order them in ascending order
+
+subset Positive of Int where * > 0 ;
+
+sub pairorder { ($^a[0] / $^a[1]) <=> ($^b[0] / $^b[1]) }
+
+sub MAIN( Positive $n is copy ) {
+ my @numerators = (1 .. $n - 1 ) ;
+ my @denominators = (1 .. $n ) ;
+ my @fractions ;
+ @fractions.push( (0 , 1 ) ) ;
+ for @numerators -> $num {
+ for @denominators -> $denom {
+ if ( ($num < $denom) && ($num lcm $denom ==
+ $num * $denom) ) {
+ @fractions.push( ($num , $denom) ) ;
+ }
+ }
+ }
+ my @sorted = @fractions.sort( &pairorder ) ;
+ for @sorted -> $pair {
+ print "$pair[0]/$pair[1], " ;
+ }
+ say "1/1" ;
+}
diff --git a/challenge-159/ulrich-rieke/raku/ch-2.raku b/challenge-159/ulrich-rieke/raku/ch-2.raku
new file mode 100644
index 0000000000..bc66f875b3
--- /dev/null
+++ b/challenge-159/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,37 @@
+use v6 ;
+
+#for theoretical reasons, the smallest divisor of a number must be prime
+
+subset Positive of Int where * > 0 ;
+sub primeDecomposition( Positive $n is copy ) {
+ my @primeNumbers ;
+ my $current = 1 ;
+ while ( $n != 1 ) {
+ repeat {
+ $current++ ;
+ } until ( $n %% $current ) ;
+ @primeNumbers.push( $current ) ;
+ $n div= $current ;
+ $current-- ; # a prime factor might be repeated, in the non-squarefree
+ # numbers
+ }
+ return @primeNumbers ;
+}
+
+sub MAIN( Positive $n is copy ) {
+ my @primeNumbers = primeDecomposition( $n ) ;
+ my $primeSet = @primeNumbers.Set ;
+ my $setLen = $primeSet.elems ;
+ my $arrayLen = @primeNumbers.elems ;
+ if ( $setLen == $arrayLen ) { # square-free!
+ if ( $arrayLen %% 2 ) {
+ say 1 ;
+ }
+ else {
+ say -1 ;
+ }
+ }
+ else {
+ say 0 ;
+ }
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 6f52526a1d..089a41460f 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,4 +1,103 @@
{
+ "series" : [
+ {
+ "data" : [
+ {
+ "drilldown" : "Dave Jacoby",
+ "y" : 3,
+ "name" : "Dave Jacoby"
+ },
+ {
+ "drilldown" : "E. Choroba",
+ "y" : 2,
+ "name" : "E. Choroba"
+ },
+ {
+ "drilldown" : "Flavio Poletti",
+ "name" : "Flavio Poletti",
+ "y" : 6
+ },
+ {
+ "drilldown" : "James Smith",
+ "y" : 3,
+ "name" : "James Smith"
+ },
+ {
+ "drilldown" : "Luca Ferrari",
+ "y" : 8,
+ "name" : "Luca Ferrari"
+ },
+ {
+ "drilldown" : "Mark Anderson",
+ "y" : 2,
+ "name" : "Mark Anderson"
+ },
+ {
+ "drilldown" : "Marton Polgar",
+ "name" : "Marton Polgar",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "name" : "Paulo Custodio",
+ "drilldown" : "Paulo Custodio"
+ },
+ {
+ "drilldown" : "PokGoPun",
+ "y" : 2,
+ "name" : "PokGoPun"
+ },
+ {
+ "name" : "Robert DiCicco",
+ "y" : 2,
+ "drilldown" : "Robert DiCicco"
+ },
+ {
+ "drilldown" : "Roger Bell_West",
+ "y" : 4,
+ "name" : "Roger Bell_West"
+ },
+ {
+ "drilldown" : "Simon Proctor",
+ "name" : "Simon Proctor",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "y" : 4,
+ "name" : "Ulrich Rieke"
+ }
+ ],
+ "name" : "The Weekly Challenge - 159",
+ "colorByPoint" : 1
+ }
+ ],
+ "tooltip" : {
+ "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/>",
+ "followPointer" : 1
+ },
+ "subtitle" : {
+ "text" : "[Champions: 13] Last updated at 2022-04-05 20:37:08 GMT"
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ }
+ }
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 159"
+ },
"yAxis" : {
"title" : {
"text" : "Total Solutions"
@@ -10,8 +109,6 @@
"drilldown" : {
"series" : [
{
- "name" : "Dave Jacoby",
- "id" : "Dave Jacoby",
"data" : [
[
"Perl",
@@ -21,7 +118,9 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Dave Jacoby",
+ "name" : "Dave Jacoby"
},
{
"data" : [
@@ -30,8 +129,8 @@
2
]
],
- "name" : "E. Choroba",
- "id" : "E. Choroba"
+ "id" : "E. Choroba",
+ "name" : "E. Choroba"
},
{
"data" : [
@@ -48,10 +147,12 @@
2
]
],
- "id" : "Flavio Poletti",
- "name" : "Flavio Poletti"
+ "name" : "Flavio Poletti",
+ "id" : "Flavio Poletti"
},
{
+ "id" : "James Smith",
+ "name" : "James Smith",
"data" : [
[
"Perl",
@@ -61,11 +162,11 @@
"Blog",
1
]
- ],
- "id" : "James Smith",
- "name" : "James Smith"
+ ]
},
{
+ "id" : "Luca Ferrari",
+ "name" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -75,29 +176,27 @@
"Blog",
6
]
- ],
- "id" : "Luca Ferrari",
- "name" : "Luca Ferrari"
+ ]
},
{
+ "id" : "Mark Anderson",
+ "name" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
- ],
- "name" : "Mark Anderson",
- "id" : "Mark Anderson"
+ ]
},
{
- "name" : "Marton Polgar",
- "id" : "Marton Polgar",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "id" : "Marton Polgar",
+ "name" : "Marton Polgar"
},
{
"data" : [
@@ -120,8 +219,8 @@
"name" : "PokGoPun"
},
{
- "name" : "Robert DiCicco",
"id" : "Robert DiCicco",
+ "name" : "Robert DiCicco",
"data" : [
[
"Perl",
@@ -140,8 +239,8 @@
2
]
],
- "name" : "Roger Bell_West",
- "id" : "Roger Bell_West"
+ "id" : "Roger Bell_West",
+ "name" : "Roger Bell_West"
},
{
"data" : [
@@ -152,101 +251,21 @@
],
"name" : "Simon Proctor",
"id" : "Simon Proctor"
+ },
+ {
+ "id" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ]
}
]
- },
- "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/>"
- },
- "title" : {
- "text" : "The Weekly Challenge - 159"
- },
- "chart" : {
- "type" : "column"
- },
- "subtitle" : {
- "text" : "[Champions: 12] Last updated at 2022-04-05 20:19:25 GMT"
- },
- "series" : [
- {
- "name" : "The Weekly Challenge - 159",
- "data" : [
- {
- "name" : "Dave Jacoby",
- "drilldown" : "Dave Jacoby",
- "y" : 3
- },
- {
- "y" : 2,
- "drilldown" : "E. Choroba",
- "name" : "E. Choroba"
- },
- {
- "y" : 6,
- "name" : "Flavio Poletti",
- "drilldown" : "Flavio Poletti"
- },
- {
- "name" : "James Smith",
- "drilldown" : "James Smith",
- "y" : 3
- },
- {
- "y" : 8,
- "name" : "Luca Ferrari",
- "drilldown" : "Luca Ferrari"
- },
- {
- "name" : "Mark Anderson",
- "drilldown" : "Mark Anderson",
- "y" : 2
- },
- {
- "name" : "Marton Polgar",
- "drilldown" : "Marton Polgar",
- "y" : 2
- },
- {
- "drilldown" : "Paulo Custodio",
- "name" : "Paulo Custodio",
- "y" : 2
- },
- {
- "name" : "PokGoPun",
- "drilldown" : "PokGoPun",
- "y" : 2
- },
- {
- "y" : 2,
- "drilldown" : "Robert DiCicco",
- "name" : "Robert DiCicco"
- },
- {
- "drilldown" : "Roger Bell_West",
- "name" : "Roger Bell_West",
- "y" : 4
- },
- {
- "drilldown" : "Simon Proctor",
- "name" : "Simon Proctor",
- "y" : 2
- }
- ],
- "colorByPoint" : 1
- }
- ],
- "xAxis" : {
- "type" : "category"
- },
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- }
- }
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 00ae16ae32..e20266d39d 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,48 +1,15 @@
{
"yAxis" : {
+ "min" : 0,
"title" : {
"text" : null
- },
- "min" : 0
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
- "title" : {
- "text" : "The Weekly Challenge Contributions [2019 - 2022]"
+ }
},
"legend" : {
"enabled" : "false"
},
- "chart" : {
- "type" : "column"
- },
- "xAxis" : {
- "type" : "category",
- "labels" : {
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- }
- }
- },
- "subtitle" : {
- "text" : "Last updated at 2022-04-05 20:19:25 GMT"
- },
"series" : [
{
- "dataLabels" : {
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- },
- "y" : 10,
- "align" : "right",
- "format" : "{point.y:.0f}",
- "enabled" : "true",
- "rotation" : -90,
- "color" : "#FFFFFF"
- },
"data" : [
[
"Blog",
@@ -50,14 +17,47 @@
],
[
"Perl",
- 7667
+ 7669
],
[
"Raku",
- 4591
+ 4593
]
],
+ "dataLabels" : {
+ "enabled" : "true",
+ "y" : 10,
+ "align" : "right",
+ "color" : "#FFFFFF",
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ },
+ "format" : "{point.y:.0f}",
+ "rotation" : -90
+ },
"name" : "Contributions"
}
- ]
+ ],
+ "subtitle" : {
+ "text" : "Last updated at 2022-04-05 20:37:08 GMT"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge Contributions [2019 - 2022]"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "xAxis" : {
+ "type" : "category",
+ "labels" : {
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ }
+ }
+ }
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 79632a5045..d7d3f0b7d7 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,15 +1,18 @@
{
- "chart" : {
- "type" : "column"
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2022-04-05 20:37:08 GMT"
+ },
+ "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" : [
{
- "name" : "The Weekly Challenge Languages",
- "colorByPoint" : "true",
"data" : [
{
- "name" : "#001",
"drilldown" : "001",
+ "name" : "#001",
"y" : 161
},
{
@@ -18,9 +21,9 @@
"y" : 125
},
{
- "drilldown" : "003",
"name" : "#003",
- "y" : 83
+ "y" : 83,
+ "drilldown" : "003"
},
{
"y" : 99,
@@ -28,8 +31,8 @@
"drilldown" : "004"
},
{
- "y" : 78,
"name" : "#005",
+ "y" : 78,
"drilldown" : "005"
},
{
@@ -38,74 +41,74 @@
"drilldown" : "006"
},
{
- "name" : "#007",
"drilldown" : "007",
- "y" : 64
+ "y" : 64,
+ "name" : "#007"
},
{
- "y" : 78,
"name" : "#008",
+ "y" : 78,
"drilldown" : "008"
},
{
- "y" : 76,
"name" : "#009",
+ "y" : 76,
"drilldown" : "009"
},
{
"y" : 65,
- "drilldown" : "010",
- "name" : "#010"
+ "name" : "#010",
+ "drilldown" : "010"
},
{
+ "drilldown" : "011",
"y" : 85,
- "name" : "#011",
- "drilldown" : "011"
+ "name" : "#011"
},
{
"drilldown" : "012",
- "name" : "#012",
- "y" : 89
+ "y" : 89,
+ "name" : "#012"
},
{
- "name" : "#013",
"drilldown" : "013",
+ "name" : "#013",
"y" : 85
},
{
+ "name" : "#014",
"y" : 101,
- "drilldown" : "014",
- "name" : "#014"
+ "drilldown" : "014"
},
{
- "y" : 99,
+ "drilldown" : "015",
"name" : "#015",
- "drilldown" : "015"
+ "y" : 99
},
{
+ "drilldown" : "016",
"y" : 71,
- "name" : "#016",
- "drilldown" : "016"
+ "name" : "#016"
},
{
+ "drilldown" : "017",
"y" : 84,
- "name" : "#017",
- "drilldown" : "017"
+ "name" : "#017"
},
{
- "drilldown" : "018",
"name" : "#018",
- "y" : 81
+ "y" : 81,
+ "drilldown" : "018"
},
{
- "name" : "#019",
"drilldown" : "019",
- "y" : 103
+ "y" : 103,
+ "name" : "#019"
},
{
+ "name" : "#020",
"y" : 101,
- "drilldown" : "020",
- "name" : "#020"
+ "drilldown" : "020"
},
{
"y" : 72,
@@ -113,24 +116,24 @@
"drilldown" : "021"
},
{
- "y" : 68,
"drilldown" : "022",
+ "y" : 68,
"name" : "#022"
},
{
"name" : "#023",
- "drilldown" : "023",
- "y" : 97
+ "y" : 97,
+ "drilldown" : "023"
},
{
- "drilldown" : "024",
+ "y" : 75,
"name" : "#024",
- "y" : 75
+ "drilldown" : "024"
},
{
- "y" : 59,
+ "drilldown" : "025",
"name" : "#025",
- "drilldown" : "025"
+ "y" : 59
},
{
"drilldown" : "026",
@@ -138,39 +141,39 @@
"y" : 74
},
{
- "name" : "#027",
"drilldown" : "027",
+ "name" : "#027",