From dabf254dc1122783dcbf5087e89aa5e436017fdb Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Tue, 3 Jun 2025 13:13:54 +0100 Subject: - Added solutions by Andrew Shitov. - Added solutions by Jaldhar H. Vyas. - Added solutions by Eric Cheung. - Added solutions by Ulrich Rieke. - Added solutions by Niels van Dijke. - Added solutions by Mark Anderson. - Added solutions by Robbie Hatley. - Added solutions by PokGoPun. - Added solutions by Alexander Karelas. - Added solutions by E. Choroba. - Added solutions by Feng Chang. - Added solutions by Ali Moradi. - Added solutions by W. Luis Mochan. - Added solutions by David Ferrone. - Added solutions by Peter Campbell Smith. - Added solutions by Conor Hoekstra. --- challenge-324/conor-hoekstra/bqn/ch-1.bqn | 11 + challenge-324/conor-hoekstra/bqn/ch-2.bqn | 14 + challenge-324/conor-hoekstra/ch-1.bqn | 11 - challenge-324/conor-hoekstra/ch-2.bqn | 14 - challenge-324/eric-cheung/python/ch-1.py | 21 ++ challenge-324/eric-cheung/python/ch-2.py | 37 ++ challenge-324/perlboy1967/perl/ch-1.pl | 35 ++ challenge-324/perlboy1967/perl/ch-2.pl | 44 +++ challenge-324/perlboy1967/perl/ch1.pl | 35 -- challenge-324/perlboy1967/perl/ch2.pl | 44 --- challenge-324/ulrich-rieke/cpp/ch-1.cpp | 56 +++ challenge-324/ulrich-rieke/cpp/ch-2.cpp | 77 ++++ challenge-324/ulrich-rieke/haskell/ch-1.hs | 18 + challenge-324/ulrich-rieke/haskell/ch-2.hs | 17 + challenge-324/ulrich-rieke/perl/ch-1.pl | 35 ++ challenge-324/ulrich-rieke/perl/ch-2.pl | 30 ++ challenge-324/ulrich-rieke/raku/ch-1.raku | 28 ++ challenge-324/ulrich-rieke/raku/ch-2.raku | 52 +++ challenge-324/ulrich-rieke/rust/ch-1.rs | 31 ++ challenge-324/ulrich-rieke/rust/ch-2.rs | 15 + stats/pwc-challenge-323.json | 540 +++++++++++++++++++++++++++++ stats/pwc-current.json | 299 +--------------- stats/pwc-language-breakdown-2019.json | 2 +- stats/pwc-language-breakdown-2020.json | 2 +- stats/pwc-language-breakdown-2021.json | 2 +- stats/pwc-language-breakdown-2022.json | 2 +- stats/pwc-language-breakdown-2023.json | 2 +- stats/pwc-language-breakdown-2024.json | 2 +- stats/pwc-language-breakdown-2025.json | 33 +- stats/pwc-language-breakdown-summary.json | 8 +- stats/pwc-leaders.json | 82 ++--- stats/pwc-summary-1-30.json | 10 +- stats/pwc-summary-121-150.json | 2 +- stats/pwc-summary-151-180.json | 4 +- stats/pwc-summary-181-210.json | 4 +- stats/pwc-summary-211-240.json | 6 +- stats/pwc-summary-241-270.json | 6 +- stats/pwc-summary-271-300.json | 2 +- stats/pwc-summary-301-330.json | 10 +- stats/pwc-summary-31-60.json | 4 +- stats/pwc-summary-61-90.json | 8 +- stats/pwc-summary-91-120.json | 8 +- stats/pwc-summary.json | 44 +-- stats/pwc-yearly-language-summary.json | 10 +- 44 files changed, 1214 insertions(+), 503 deletions(-) create mode 100644 challenge-324/conor-hoekstra/bqn/ch-1.bqn create mode 100644 challenge-324/conor-hoekstra/bqn/ch-2.bqn delete mode 100644 challenge-324/conor-hoekstra/ch-1.bqn delete mode 100644 challenge-324/conor-hoekstra/ch-2.bqn create mode 100755 challenge-324/eric-cheung/python/ch-1.py create mode 100755 challenge-324/eric-cheung/python/ch-2.py create mode 100755 challenge-324/perlboy1967/perl/ch-1.pl create mode 100755 challenge-324/perlboy1967/perl/ch-2.pl delete mode 100755 challenge-324/perlboy1967/perl/ch1.pl delete mode 100755 challenge-324/perlboy1967/perl/ch2.pl create mode 100755 challenge-324/ulrich-rieke/cpp/ch-1.cpp create mode 100755 challenge-324/ulrich-rieke/cpp/ch-2.cpp create mode 100755 challenge-324/ulrich-rieke/haskell/ch-1.hs create mode 100755 challenge-324/ulrich-rieke/haskell/ch-2.hs create mode 100755 challenge-324/ulrich-rieke/perl/ch-1.pl create mode 100755 challenge-324/ulrich-rieke/perl/ch-2.pl create mode 100755 challenge-324/ulrich-rieke/raku/ch-1.raku create mode 100755 challenge-324/ulrich-rieke/raku/ch-2.raku create mode 100755 challenge-324/ulrich-rieke/rust/ch-1.rs create mode 100755 challenge-324/ulrich-rieke/rust/ch-2.rs create mode 100644 stats/pwc-challenge-323.json diff --git a/challenge-324/conor-hoekstra/bqn/ch-1.bqn b/challenge-324/conor-hoekstra/bqn/ch-1.bqn new file mode 100644 index 0000000000..4d15712906 --- /dev/null +++ b/challenge-324/conor-hoekstra/bqn/ch-1.bqn @@ -0,0 +1,11 @@ +# For up to date code: +# https://github.com/codereport/bqn-code/blob/main/pwc/324-1.bqn + +u ⇐ •Import "/home/cph/bqn-test/test.bqn" + +Make2dArray ← ⥊ + +# Tests +u.UnitTest (2‿2 Make2dArray 1‿2‿3‿4) ≡ >⟨⟨1,2⟩,⟨3,4⟩⟩ +u.UnitTest (1‿3 Make2dArray 1‿2‿3) ≡ >⟨⟨1,2,3⟩⟩ +u.UnitTest (4‿1 Make2dArray 1‿2‿3‿4) ≡ >⟨⟨1⟩,⟨2⟩,⟨3⟩,⟨4⟩⟩ diff --git a/challenge-324/conor-hoekstra/bqn/ch-2.bqn b/challenge-324/conor-hoekstra/bqn/ch-2.bqn new file mode 100644 index 0000000000..4ebf54eecf --- /dev/null +++ b/challenge-324/conor-hoekstra/bqn/ch-2.bqn @@ -0,0 +1,14 @@ +# For up to date code: +# https://github.com/codereport/bqn-code/blob/main/pwc/324-2.bqn + +u ⇐ •Import "/home/cph/bqn-test/test.bqn" +fn ⇐ •Import "/home/cph/bqn-code/lib/fun.bqn" + +Xor ← {⊑𝕨⟨32⟩•bit._xor⟨𝕩⟩} # TODO has to be a better way to do this + +TotalXor ← +´·Xor´¨1↓fn.PowerSet + +# Tests +u.UnitTest (TotalXor 1‿3) ≡ 6 +u.UnitTest (TotalXor 5‿1‿6) ≡ 28 +u.UnitTest (TotalXor 3‿4‿5‿6‿7‿8) ≡ 480 diff --git a/challenge-324/conor-hoekstra/ch-1.bqn b/challenge-324/conor-hoekstra/ch-1.bqn deleted file mode 100644 index 4d15712906..0000000000 --- a/challenge-324/conor-hoekstra/ch-1.bqn +++ /dev/null @@ -1,11 +0,0 @@ -# For up to date code: -# https://github.com/codereport/bqn-code/blob/main/pwc/324-1.bqn - -u ⇐ •Import "/home/cph/bqn-test/test.bqn" - -Make2dArray ← ⥊ - -# Tests -u.UnitTest (2‿2 Make2dArray 1‿2‿3‿4) ≡ >⟨⟨1,2⟩,⟨3,4⟩⟩ -u.UnitTest (1‿3 Make2dArray 1‿2‿3) ≡ >⟨⟨1,2,3⟩⟩ -u.UnitTest (4‿1 Make2dArray 1‿2‿3‿4) ≡ >⟨⟨1⟩,⟨2⟩,⟨3⟩,⟨4⟩⟩ diff --git a/challenge-324/conor-hoekstra/ch-2.bqn b/challenge-324/conor-hoekstra/ch-2.bqn deleted file mode 100644 index 4ebf54eecf..0000000000 --- a/challenge-324/conor-hoekstra/ch-2.bqn +++ /dev/null @@ -1,14 +0,0 @@ -# For up to date code: -# https://github.com/codereport/bqn-code/blob/main/pwc/324-2.bqn - -u ⇐ •Import "/home/cph/bqn-test/test.bqn" -fn ⇐ •Import "/home/cph/bqn-code/lib/fun.bqn" - -Xor ← {⊑𝕨⟨32⟩•bit._xor⟨𝕩⟩} # TODO has to be a better way to do this - -TotalXor ← +´·Xor´¨1↓fn.PowerSet - -# Tests -u.UnitTest (TotalXor 1‿3) ≡ 6 -u.UnitTest (TotalXor 5‿1‿6) ≡ 28 -u.UnitTest (TotalXor 3‿4‿5‿6‿7‿8) ≡ 480 diff --git a/challenge-324/eric-cheung/python/ch-1.py b/challenge-324/eric-cheung/python/ch-1.py new file mode 100755 index 0000000000..72d716b01d --- /dev/null +++ b/challenge-324/eric-cheung/python/ch-1.py @@ -0,0 +1,21 @@ + +import numpy as np + +## Example 1 +## arrInt = [1, 2, 3, 4] +## nRow = 2 +## nCol = 2 + +## Example 2 +## arrInt = [1, 2, 3] +## nRow = 1 +## nCol = 3 + +## Example 3 +arrInt = [1, 2, 3, 4] +nRow = 4 +nCol = 1 + +arrOutput = np.array(arrInt).reshape((nRow, nCol)).tolist() + +print (arrOutput) diff --git a/challenge-324/eric-cheung/python/ch-2.py b/challenge-324/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..4c159d4955 --- /dev/null +++ b/challenge-324/eric-cheung/python/ch-2.py @@ -0,0 +1,37 @@ + +from itertools import chain, combinations + +## ==== METHOD 2 ==== +def GetXOR (arrInput): + nXOR = 0 + for nElem in arrInput: + nXOR = nXOR ^ nElem + + return nXOR +## ==== METHOD 2 ==== + +## arrInt = [1, 3] ## Example 1 +## arrInt = [5, 1, 6] ## Example 2 +arrInt = [3, 4, 5, 6, 7, 8] ## Example 3 + +arrSubsetList = list(chain.from_iterable(combinations(arrInt, nIndx) for nIndx in range(len(arrInt) + 1))) + +## ==== METHOD 1 ==== +## arrOutput = [] + +## for arrLoop in arrSubsetList: + ## if len(arrLoop) == 0: + ## continue + + ## nXOR = 0 + ## for nElem in arrLoop: + ## nXOR = nXOR ^ nElem + + ## arrOutput.append(nXOR) +## ==== METHOD 1 ==== + +## ==== METHOD 2 ==== +arrOutput = [GetXOR (arrLoop) for arrLoop in arrSubsetList if len(arrLoop) > 0] +## ==== METHOD 2 ==== + +print (sum(arrOutput)) diff --git a/challenge-324/perlboy1967/perl/ch-1.pl b/challenge-324/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..9621c376be --- /dev/null +++ b/challenge-324/perlboy1967/perl/ch-1.pl @@ -0,0 +1,35 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 324 +L + +Author: Niels 'PerlBoy' van Dijke + +Task 1: 2D Array +Submitted by: Mohammad Sajid Anwar + +You are given an array of integers and two integers $r amd $c. + +Write a script to create two dimension array having $r rows and $c columns +using the given array. + +=cut + +use v5.32; +use common::sense; +use feature qw(signatures); +use Test2::V0 qw(-no_srand); +no warnings qw(experimental::signatures); + +sub to2D ($r,$c,@ints) { + return () if ($r * $c != scalar(@ints)); + return map { [splice(@ints,0,$c)] } 0 .. $#ints/$c; +} + +is([to2D(2,2,1,2,3,4)],[[1,2],[3,4]],'Example 1'); +is([to2D(1,3,1,2,3)],[[1,2,3]],'Example 2'); +is([to2D(4,1,1,2,3,4)],[[1],[2],[3],[4]],'Example 3'); + +done_testing; diff --git a/challenge-324/perlboy1967/perl/ch-2.pl b/challenge-324/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..e3ea35aedb --- /dev/null +++ b/challenge-324/perlboy1967/perl/ch-2.pl @@ -0,0 +1,44 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 324 +L + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Total XOR +Submitted by: Mohammad Sajid Anwar + +You are given an array of integers. + +Write a script to return the sum of total XOR for every subset of given array. + +=cut + +use v5.32; +use common::sense; +use feature qw(signatures); +use Test2::V0 qw(-no_srand); +no warnings qw(experimental::signatures); + +use Algorithm::Combinatorics qw(combinations); +use List::AllUtils qw(sum); + +sub totalXor (@ints) { + my $sum = sum(@ints); + for my $dim (2 .. scalar(@ints)) { + for my $a (combinations(\@ints,$dim)) { + my $xor = shift (@$a); + $xor ^= $_ for (@$a); + $sum += $xor; + } + } + return $sum; +} + +is(totalXor(1,3),6,'Example 1'); +is(totalXor(5,1,6),28,'Example 2'); +is(totalXor(3,4,5,6,7,8),480,'Example 3'); + +done_testing; diff --git a/challenge-324/perlboy1967/perl/ch1.pl b/challenge-324/perlboy1967/perl/ch1.pl deleted file mode 100755 index 9621c376be..0000000000 --- a/challenge-324/perlboy1967/perl/ch1.pl +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/perl - -=pod - -The Weekly Challenge - 324 -L - -Author: Niels 'PerlBoy' van Dijke - -Task 1: 2D Array -Submitted by: Mohammad Sajid Anwar - -You are given an array of integers and two integers $r amd $c. - -Write a script to create two dimension array having $r rows and $c columns -using the given array. - -=cut - -use v5.32; -use common::sense; -use feature qw(signatures); -use Test2::V0 qw(-no_srand); -no warnings qw(experimental::signatures); - -sub to2D ($r,$c,@ints) { - return () if ($r * $c != scalar(@ints)); - return map { [splice(@ints,0,$c)] } 0 .. $#ints/$c; -} - -is([to2D(2,2,1,2,3,4)],[[1,2],[3,4]],'Example 1'); -is([to2D(1,3,1,2,3)],[[1,2,3]],'Example 2'); -is([to2D(4,1,1,2,3,4)],[[1],[2],[3],[4]],'Example 3'); - -done_testing; diff --git a/challenge-324/perlboy1967/perl/ch2.pl b/challenge-324/perlboy1967/perl/ch2.pl deleted file mode 100755 index e3ea35aedb..0000000000 --- a/challenge-324/perlboy1967/perl/ch2.pl +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/perl - -=pod - -The Weekly Challenge - 324 -L - -Author: Niels 'PerlBoy' van Dijke - -Task 2: Total XOR -Submitted by: Mohammad Sajid Anwar - -You are given an array of integers. - -Write a script to return the sum of total XOR for every subset of given array. - -=cut - -use v5.32; -use common::sense; -use feature qw(signatures); -use Test2::V0 qw(-no_srand); -no warnings qw(experimental::signatures); - -use Algorithm::Combinatorics qw(combinations); -use List::AllUtils qw(sum); - -sub totalXor (@ints) { - my $sum = sum(@ints); - for my $dim (2 .. scalar(@ints)) { - for my $a (combinations(\@ints,$dim)) { - my $xor = shift (@$a); - $xor ^= $_ for (@$a); - $sum += $xor; - } - } - return $sum; -} - -is(totalXor(1,3),6,'Example 1'); -is(totalXor(5,1,6),28,'Example 2'); -is(totalXor(3,4,5,6,7,8),480,'Example 3'); - -done_testing; diff --git a/challenge-324/ulrich-rieke/cpp/ch-1.cpp b/challenge-324/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..4e3d48e040 --- /dev/null +++ b/challenge-324/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,56 @@ +#include +#include +#include +#include + +std::vector split( const std::string & text , char delimiter ) { + std::vector tokens ; + std::istringstream istr { text } ; + std::string word ; + while ( std::getline( istr , word , delimiter ) ) + tokens.push_back( word ) ; + return tokens ; +} + +int main( ) { + std::cout << "Enter some integers separated by whitespace!\n" ; + std::string line ; + std::getline( std::cin , line ) ; + std::cout << "Enter number of rows and columns!\n" ; + std::string dimline ; + std::getline( std::cin , dimline ) ; + std::vector numbers , dimensions ; + auto numbertokens { split( line , ' ' ) } ; + auto dimtokens { split( dimline , ' ' ) } ; + for ( auto s : numbertokens ) + numbers.push_back( std::stoi( s ) ) ; + for ( auto s : dimtokens ) + dimensions.push_back( std::stoi( s )) ; + if ( dimensions[0] * dimensions[1] != static_cast(numbers.size( ) ) ) { + std::cerr << "product of rows and columns must equal number of elts!\n" ; + return 1 ; + } + else { + int pos = 0 ; + std::vector> myArray ; + for ( int r = 0 ; r < dimensions[0] ; r++ ) { + std::vector currentRow ; + for ( int c = 0 ; c < dimensions[1] ; c++ ) { + currentRow.push_back( numbers[pos] ) ; + pos++ ; + } + myArray.push_back( currentRow ) ; + } + std::cout << "( " ; + for ( auto vec : myArray ) { + std::cout << "[ " ; + for ( auto it = vec.begin( ) ; it != vec.end( ) ; ++it ) { + std::cout << *it << ' ' ; + } + std::cout << "] " ; + } + std::cout << ") \n" ; + return 0 ; + } +} + diff --git a/challenge-324/ulrich-rieke/cpp/ch-2.cpp b/challenge-324/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..97584673a0 --- /dev/null +++ b/challenge-324/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,77 @@ +#include +#include +#include +#include +#include +#include +#include + +std::vector split( const std::string & text , char delimiter ) { + std::vector tokens ; + std::string word ; + std::istringstream istr { text } ; + while ( std::getline( istr , word , delimiter )) + tokens.push_back( word ) ; + return tokens ; +} + +//create a binary string from a number! Fill up as many 0 at the front +//as necessary +std::string createBinaryString( int length , int number ) { + std::string binary ; + while ( number != 0 ) { + binary.append( std::to_string( number % 2 ) ) ; + number /= 2 ; + } + int len = static_cast( binary.length( ) ) ; + if ( len < length ) { + for ( int i = 0 ; i < length - len ; i++ ) { + binary.push_back( '0' ) ; + } + } + //digits in the wrong order , have to be reversed ; + std::reverse( binary.begin( ) , binary.end( ) ) ; + return binary ; +} + +int main( ) { + std::cout << "Enter some integers separated by blanks!\n" ; + std::string line ; + std::getline( std::cin , line ) ; + auto tokens { split( line , ' ' ) } ; + std::vector numbers ; + for ( auto s : tokens ) + numbers.push_back( std::stoi( s ) ) ; + //creating a powerset of all subsets is equivalent to picking an + //element from a set if a given binary for all the numbers from 0 + //to 2 ^ ( length of set ) - 1 contains a 1 + std::vector allBinaries ; + int len = numbers.size( ) ; + for ( int i = 0 ; i < static_cast( std::pow( 2.0 , len ) ) ; i++ ) { + allBinaries.push_back( createBinaryString( len , i ) ) ; + } + std::vector> powerset ; + for ( auto s : allBinaries ) { + std::vector selected ; + int pos = 0 ; + for ( char c : s ) { + if ( c == '1' ) { + selected.push_back(numbers[pos] ) ; + } + pos++ ; + } + powerset.push_back( selected ) ; + } + std::vector sums ; // for the xor sums of sublists + for ( auto vec : powerset ) { + if (vec.size( ) == 1) + sums.push_back( vec[0] ) ; + else { + int subsum = std::accumulate( vec.begin( ) , vec.end( ) , 0 , []( + int a , int b ){ return a ^ b ; } ) ; + sums.push_back( subsum ) ; + } + } + std::cout << std::accumulate( sums.begin( ) , sums.end( ) , 0 ) << '\n' ; + return 0 ; +} diff --git a/challenge-324/ulrich-rieke/haskell/ch-1.hs b/challenge-324/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..ac808e635f --- /dev/null +++ b/challenge-324/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,18 @@ +module Challenge324 + where +import Data.List.Split ( chunksOf ) + +solution :: [Int] -> Int -> Int -> [[Int]] +solution list rows columns + |rows * columns /= length list = error "rows and columns don't fit array" + |otherwise = chunksOf columns list + +main :: IO ( ) +main = do + putStrLn "Enter some integers separated by blanks!" + numberline <- getLine + putStrLn "Enter number of rows and columns!" + dimline <- getLine + let ( rows , cols ) = (read $ head $ words dimline , read $ last $ + words dimline ) + print $ solution ( map read $ words numberline ) rows cols diff --git a/challenge-324/ulrich-rieke/haskell/ch-2.hs b/challenge-324/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..5f685868d7 --- /dev/null +++ b/challenge-324/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,17 @@ +module Challenge324_2 + where +import qualified Data.Set as S +import Data.Bits ( xor ) + +solution :: [Int] -> Int +solution = sum . map op . filter ( not . null ) . map S.toList . S.toList + . S.powerSet . S.fromList + where + op :: [Int] -> Int + op list = if length list == 1 then head list else foldl1 xor list + +main :: IO ( ) +main = do + putStrLn "Enter some integers separated by blanks!" + numberline <- getLine + print $ solution $ map read $ words numberline diff --git a/challenge-324/ulrich-rieke/perl/ch-1.pl b/challenge-324/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..088936ab04 --- /dev/null +++ b/challenge-324/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +say "Enter some integers separated by blanks!" ; +my $line = ; +chomp $line ; +my @numbers = split( /\s/ , $line ) ; +say "Enter number of rows and columns!" ; +$line = ; +chomp $line ; +my ( $rows , $columns ) = split( /\s/ , $line ) ; +if ( $rows * $columns != scalar( @numbers )) { + say "The product of rows and columns must equal the element number!" ; +} +else { + my @array ; + my $pos = 0 ; + for my $r( 0..$rows - 1 ) { + my @row ; + for my $c( 0..$columns - 1 ) { + push( @row , $numbers[$pos] ) ; + $pos++ ; + } + push( @array , \@row ) ; + } + print '(' ; + for my $a ( @array ) { + print '[' ; + print join( ',' , @$a ) . "] " ; + } + say ")" ; +} + diff --git a/challenge-324/ulrich-rieke/perl/ch-2.pl b/challenge-324/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..c457e8e8a8 --- /dev/null +++ b/challenge-324/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,30 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use Algorithm::Combinatorics qw ( subsets ) ; +use List::Util qw ( sum ) ; + +#the task is equivalent to finding the sum of all pairwise application of +#xor in all subsets in the powerset of the array that was passed +#all the sums of the subsets are then summed up + +sub mySum { + my $array = shift ; + my $sum = 0 ; + for my $elt ( @$array ) { + $sum ^= $elt ; + } + return $sum ; +} + +say "Enter some integers separated by blanks!" ; +my $line = ; +chomp $line ; +my @numbers = split( /\s/ , $line ) ; +my $iter = subsets( \@numbers ) ; +my @subsums ; +while ( my $p = $iter->next( ) ) { + push( @subsums , mySum( $p ) ) ; +} +say sum( @subsums ) ; diff --git a/challenge-324/ulrich-rieke/raku/ch-1.raku b/challenge-324/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..b8a955879c --- /dev/null +++ b/challenge-324/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,28 @@ +use v6 ; + +say "Enter some integers separated by blanks!" ; +my $line = $*IN.get ; +my @numbers = $line.words.map( {.Int} ) ; +say "Enter number of rows and columns!" ; +$line = $*IN.get ; +my ( $rows , $columns ) = $line.words.map( {.Int} ) ; +if ( $rows * $columns != @numbers.elems ) { + say "Error! The product of rows and columns must equal the number of elements!" ; +} +else { + my @array ; + my $pos = 0 ; + for (0..$rows - 1 ) -> $r { + my @currentRow ; + for (0..$columns - 1 ) -> $c { + @currentRow.push( @numbers[$pos] ) ; + $pos++ ; + } + @array.push( @currentRow ) ; + } + print "( " ; + for ( @array ) -> $a { + print '[' ~ $a.join( ',' ) ~ "] " ; + } + say ")" ; +} diff --git a/challenge-324/ulrich-rieke/raku/ch-2.raku b/challenge-324/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..4f53a6f8ae --- /dev/null +++ b/challenge-324/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,52 @@ +use v6 ; + +#the task is to find the xor-sum for each subset of the powerset of +#numbers entered. I didn't find a suitable Raku library for that +#so I resorted to creating the binaries of all numbers from 0 to +#2 ^ ( n - 1 ) where n is the number of elements in the set. 1 means +#element has to be entered , 0 not + +sub createSubsetStrings( $n ) { + my @numberstrings ; + for (0..2 ** $n - 1 ) -> $number { + @numberstrings.push( fillUp( $n , $number.base( 2 ) )) ; + } + return @numberstrings ; +} + +sub fillUp( $number , $string ) { + my $diff = $number - $string.chars ; + if ( $diff == 0 ) { + return $string ; + } + else { + return ('0' x $diff) ~ $string ; + } +} + +sub mySum( @list ) { + my $sum = 0 ; + if ( @list.elems == 1 ) { + $sum = @list[0] ; + } + else { + for @list -> $elt { + $sum = $sum +^ $elt ; + } + } + return $sum ; +} + +say "Enter some integers separated by blanks!" ; +my $line = $*IN.get ; +my @numbers = $line.words.map( {.Int} ) ; +my $len = @numbers.elems ; +my @selectionStrings = createSubsetStrings( $len ) ; +my @allLists ; +for @selectionStrings -> $str { + my @pairs = $str.comb Z, @numbers ; + my @list ; + @pairs.grep( {$_[0] eq "1"} ).map( { @list.push( $_[1] ) } ) ; + @allLists.push( @list ) ; +} +say [+] @allLists.map( {mySum( $_ ) } ) ; diff --git a/challenge-324/ulrich-rieke/rust/ch-1.rs b/challenge-324/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..295481ebdb --- /dev/null +++ b/challenge-324/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,31 @@ +use std::io ; + +fn main() { + println!("Enter some integers separated by blanks!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let numbers : Vec = inline.trim( ).split_whitespace( ).map( |s| + s.parse::( ).unwrap( ) ).collect( ) ; + println!("Enter 2 integers r and c denoting rows and columns!") ; + let mut dimline : String = String::new( ) ; + io::stdin( ).read_line( &mut dimline ).unwrap( ) ; + let dimensions : Vec = dimline.trim( ).split_whitespace( ). + map( |s| s.parse::( ).unwrap( ) ).collect( ) ; + if dimensions[0] * dimensions[1] != numbers.len( ) { + print!("Error! the product of rows and columns must equal") ; + println!("the number of elements in the number vector!") ; + } + else { + let mut my_array : Vec> = Vec::new( ) ; + let mut pos : usize = 0 ; + for _ in 0..dimensions[0] { + let mut row : Vec = Vec::new( ) ; + for _ in 0..dimensions[1] { + row.push( numbers[pos] ) ; + pos += 1 ; + } + my_array.push( row.clone( ) ) ; + } + println!("{:?}" , my_array ) ; + } +} diff --git a/challenge-324/ulrich-rieke/rust/ch-2.rs b/challenge-324/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..9c298b63fc --- /dev/null +++ b/challenge-324/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,15 @@ +use std::io ; +use itertools::Itertools ; + +fn main() { + println!("Enter some integers separated by blanks!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let numbers : Vec = inline.trim( ).split_whitespace( ).map( |s| + s.parse::( ).unwrap( )).collect( ) ; + let all_subsets : Vec> = numbers.into_iter( ).powerset( ). + collect( ) ; + let totals : Vec = all_subsets.into_iter( ).map( |v| v.iter( ). + fold(0 , |acc , n| acc ^ n ) ).collect( ) ; + println!("{}" , totals.into_iter( ).sum::( ) ) ; +} diff --git a/stats/pwc-challenge-323.json b/stats/pwc-challenge-323.json new file mode 100644 index 0000000000..d5d93cb0b2 --- /dev/null +++ b/stats/pwc-challenge-323.json @@ -0,0 +1,540 @@ +{ + "chart" : { + "type" : "column" + }, + "drilldown" : { + "series" : [ + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Ali Moradi", + "name" : "Ali Moradi" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Andreas Mahnke", + "name" : "Andreas Mahnke" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Andrew Shitov", + "name" : "Andrew Shitov" + }, + { + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Arne Sommer", + "name" : "Arne Sommer" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Bob Lied", + "name" : "Bob Lied" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Dave Jacoby", + "name" : "Dave Jacoby" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "David Ferrone", + "name" : "David Ferrone" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Feng Chang", + "name" : "Feng Chang" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Jan Krnavek", + "name" : "Jan Krnavek" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Jorg Sommrey", + "name" : "Jorg Sommrey" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim" + }, + { + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 10 + ] + ], + "id" : "Luca Ferrari", + "name" : "Luca Ferrari" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Matthias Muth", + "name" : "Matthias Muth" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Packy Anderson", + "name" : "Packy Anderson" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Peter Meszaros", + "name" : "Peter Meszaros" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Robbie Hatley", + "name" : "Robbie Hatley" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Robert Ransbottom", + "name" : "Robert Ransbottom" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Roger Bell_West", + "name" : "Roger Bell_West" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Simon Green", + "name" : "Simon Green" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ], + "id" : "Thomas Kohler", + "name" : "Thomas Kohler" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Wanderdoc", + "name" : "Wanderdoc" + } + ] + }, + "legend" : { + "enabled" : 0 + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "drilldown" : "Ali Moradi", + "name" : "Ali Moradi", + "y" : 3 + }, + { + "drilldown" : "Andreas Mahnke", + "name" : "Andreas Mahnke", + "y" : 2 + }, + { + "drilldown" : "Andrew Shitov", + "name" : "Andrew Shitov", + "y" : 2 + }, + { + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer", + "y" : 3 + }, + { + "drilldown" : "Bob Lied", + "name" : "Bob Lied", + "y" : 2 + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 3 + }, + { + "drilldown" : "David Ferrone", + "name" : "David Ferrone", + "y" : 2 + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Feng Chang", + "name" : "Feng Chang", + "y" : 2 + }, + { + "drilldown" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas", + "y" : 5 + }, + { + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek", + "y" : 2 + }, + { + "drilldown" : "Jorg Sommrey", + "name" : "Jorg Sommrey", + "y" : 3 + }, + { + "drilldown" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim", + "y" : 2 + }, + { + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari", + "y" : 12 + }, + { + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson", + "y" : 2 + }, + { + "drilldown" : "Matthias Muth", + "name" : "Matthias Muth", + "y" : 3 + }, + { + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", + "y" : 2 + }, + { + "drilldown" : "Packy Anderson", + "name" : "Packy Anderson", + "y" : 5 + }, + { + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", + "y" : 3 + }, + { + "drilldown" : "Peter Meszaros", + "name" : "Peter Meszaros", + "y" : 2 + }, + { + "drilldown" : "Robbie Hatley", + "name" : "Robbie Hatley", + "y" : 3 + }, + { + "drilldown" : "Robert Ransbottom", + "name" : "Robert Ransbottom", + "y" : 2 + }, + { + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West", + "y" : 5 + }, + { + "drilldown" : "Simon Green", + "name" : "Simon Green", + "y" : 3 + }, + { + "drilldown" : "Thomas Kohler", + "name" : "Thomas Kohler", + "y" : 4 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan", + "y" : 3 + }, + { + "drilldown" : "Wanderdoc", + "name" : "Wanderdoc", + "y" : 2 + } + ], + "name" : "The Weekly Challenge - 323" + } + ], + "subtitle" : { + "text" : "[Champions: 28] Last updated at 2025-06-03 12:13:15 GMT" + }, + "title" : { + "text" : "The Weekly Challenge - 323" + }, + "tooltip" : { + "followPointer" : 1, + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
" + }, + "xAxis" : { + "type" : "category" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 52f9bd5e33..aaa6217a91 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -9,72 +9,34 @@ [ "Perl", 2 - ], - [ - "Blog", - 1 ] ], - "id" : "Ali Moradi", - "name" : "Ali Moradi" + "id" : "Alexander Karelas", + "name" : "Alexander Karelas" }, { "data" : [ [ "Perl", 2 - ] - ], - "id" : "Andreas Mahnke", - "name" : "Andreas Mahnke" - }, - { - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "Andrew Shitov", - "name" : "Andrew Shitov" - }, - { - "data" : [ - [ - "Raku", - 2 ], [ "Blog", 1 ] ], - "id" : "Arne Sommer", - "name" : "Arne Sommer" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Bob Lied", - "name" : "Bob Lied" + "id" : "Ali Moradi", + "name" : "Ali Moradi" }, { "data" : [ [ - "Perl", + "Raku", 2 - ], - [ - "Blog", - 1 ] ], - "id" : "Dave Jacoby", - "name" : "Dave Jacoby" + "id" : "Andrew Shitov", + "name" : "Andrew Shitov" }, { "data" : [ @@ -106,54 +68,6 @@ "id" : "Feng Chang", "name" : "Feng Chang" }, - { - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "Jan Krnavek", - "name" : "Jan Krnavek" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Jorg Sommrey", - "name" : "Jorg Sommrey" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Kjetil Skotheim", - "name" : "Kjetil Skotheim" - }, - { - "data" : [ - [ - "Raku", - 2 - ], - [ - "Blog", - 10 - ] - ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" - }, { "data" : [ [ @@ -164,20 +78,6 @@ "id" : "Mark Anderson", "name" : "Mark Anderson" }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Matthias Muth", - "name" : "Matthias Muth" - }, { "data" : [ [ @@ -188,24 +88,6 @@ "id" : "Niels van Dijke", "name" : "Niels van Dijke" }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Packy Anderson", - "name" : "Packy Anderson" - }, { "data" : [ [ @@ -220,16 +102,6 @@ "id" : "Peter Campbell Smith", "name" : "Peter Campbell Smith" }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Peter Meszaros", - "name" : "Peter Meszaros" - }, { "data" : [ [ @@ -244,62 +116,6 @@ "id" : "Robbie Hatley", "name" : "Robbie Hatley" }, - { - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "Robert Ransbottom", - "name" : "Robert Ransbottom" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Roger Bell_West", - "name" : "Roger Bell_West" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Simon Green", - "name" : "Simon Green" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 2 - ] - ], - "id" : "Thomas Kohler", - "name" : "Thomas Kohler" - }, { "data" : [ [ @@ -327,16 +143,6 @@ ], "id" : "W. Luis Mochan", "name" : "W. Luis Mochan" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Wanderdoc", - "name" : "Wanderdoc" } ] }, @@ -356,36 +162,21 @@ { "colorByPoint" : 1, "data" : [ + { + "drilldown" : "Alexander Karelas", + "name" : "Alexander Karelas", + "y" : 2 + }, { "drilldown" : "Ali Moradi", "name" : "Ali Moradi", "y" : 3 }, - { - "drilldown" : "Andreas Mahnke", - "name" : "Andreas Mahnke", - "y" : 2 - }, { "drilldown" : "Andrew Shitov", "name" : "Andrew Shitov", "y" : 2 }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 3 - }, - { - "drilldown" : "Bob Lied", - "name" : "Bob Lied", - "y" : 2 - }, - { - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby", - "y" : 3 - }, { "drilldown" : "David Ferrone", "name" : "David Ferrone", @@ -401,81 +192,26 @@ "name" : "Feng Chang", "y" : 2 }, - { - "drilldown" : "Jan Krnavek", - "name" : "Jan Krnavek", - "y" : 2 - }, - { - "drilldown" : "Jorg Sommrey", - "name" : "Jorg Sommrey", - "y" : 3 - }, - { - "drilldown" : "Kjetil Skotheim", - "name" : "Kjetil Skotheim", - "y" : 2 - }, - { - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 12 - }, { "drilldown" : "Mark Anderson", "name" : "Mark Anderson", "y" : 2 }, - { - "drilldown" : "Matthias Muth", - "name" : "Matthias Muth", - "y" : 3 - }, { "drilldown" : "Niels van Dijke", "name" : "Niels van Dijke", "y" : 2 }, - { - "drilldown" : "Packy Anderson", - "name" : "Packy Anderson", - "y" : 5 - }, { "drilldown" : "Peter Campbell Smith", "name" : "Peter Campbell Smith", "y" : 3 }, - { - "drilldown" : "Peter Meszaros", - "name" : "Peter Meszaros", - "y" : 2 - }, { "drilldown" : "Robbie Hatley", "name" : "Robbie Hatley", "y" : 3 }, - { - "drilldown" : "Robert Ransbottom", - "name" : "Robert Ransbottom", - "y" : 2 - }, - { - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 5 - }, - { - "drilldown" : "Simon Green", - "name" : "Simon Green", - "y" : 3 - }, - { - "drilldown" : "Thomas Kohler", - "name" : "Thomas Kohler", - "y" : 4 - }, { "drilldown" : "Ulrich Rieke", "name" : "Ulrich Rieke", @@ -485,21 +221,16 @@ "drilldown" : "W. Luis Mochan", "name" : "W. Luis Mochan", "y" : 3 - }, - { - "drilldown" : "Wanderdoc", - "name" : "Wanderdoc", - "y" : 2 } ], - "name" : "The Weekly Challenge - 323" + "name" : "The Weekly Challenge - 324" } ], "subtitle" : { - "text" : "[Champions: 27] Last updated at 2025-06-01 21:58:31 GMT" + "text" : "[Champions: 12] Last updated at 2025-06-03 12:13:19 GMT" }, "title" : { - "text" : "The Weekly Challenge - 323" + "text" : "The Weekly Challenge - 324" }, "tooltip" : { "followPointer" : 1, diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json index 3547d4e643..41ebff4bf3 100644 --- a/stats/pwc-language-breakdown-2019.json +++ b/stats/pwc-language-breakdown-2019.json @@ -970,7 +970,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-01 21:58:31 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-03 12:13:18 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2020.json b/stats/pwc-language-breakdown-2020.json index ebcecd5da8..39b70b2747 100644 --- a/stats/pwc-language-breakdown-2020.json +++ b/stats/pwc-language-breakdown-2020.json @@ -1223,7 +1223,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-01 21:58:31 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-03 12:13:18 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2021.json b/stats/pwc-language-breakdown-2021.json index e41646443f..2eead42cbf 100644 --- a/stats/pwc-language-breakdown-2021.json +++ b/stats/pwc-language-breakdown-2021.json @@ -1223,7 +1223,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-01 21:58:31 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-03 12:13:18 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2022.json b/stats/pwc-language-breakdown-2022.json index e5170b8eea..8c1088a040 100644 --- a/stats/pwc-language-breakdown-2022.json +++ b/stats/pwc-language-breakdown-2022.json @@ -1223,7 +1223,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-01 21:58:31 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-03 12:13:18 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2023.json b/stats/pwc-language-breakdown-2023.json index 6a8ee3fcf9..b503557098 100644 --- a/stats/pwc-language-breakdown-2023.json +++ b/stats/pwc-language-breakdown-2023.json @@ -1200,7 +1200,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-01 21:58:31 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-03 12:13:18 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2024.json b/stats/pwc-language-breakdown-2024.json index de5d156629..1b62eb7a7b 100644 --- a/stats/pwc-language-breakdown-2024.json +++ b/stats/pwc-language-breakdown-2024.json @@ -1246,7 +1246,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-01 21:58:31 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-03 12:13:18 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2025.json b/stats/pwc-language-breakdown-2025.json index aa71bb1edb..2ea8760eaf 100644 --- a/stats/pwc-language-breakdown-2025.json +++ b/stats/pwc-language-breakdown-2025.json @@ -8,15 +8,33 @@ "data" : [ [ "Perl", - 40 + 18 ], [ "Raku", - 20 + 8 ], [ "Blog", - 23 + 4 + ] + ], + "id" : "324", + "name" : "324" + }, + { + "data" : [ + [ + "Perl", + 42 + ], + [ + "Raku", + 22 + ], + [ + "Blog", + 24 ] ], "id" : "323", @@ -400,10 +418,15 @@ { "colorByPoint" : "true", "data" : [ + { + "drilldown" : "324", + "name" : "324", + "y" : 30 + }, { "drilldown" : "323", "name" : "323", - "y" : 83 + "y" : 88 }, { "drilldown" : "322", @@ -510,7 +533,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-01 21:58:31 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-06-03 12:13:19 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 992d24677c..efb3826540 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -10,15 +10,15 @@ "data" : [ [ "Perl", - 16712 + 16732 ], [ "Raku", - 9308 + 9318 ], [ "Blog", - 5938 + 5943 ] ], "dataLabels" : { @@ -37,7 +37,7 @@ } ], "subtitle" : { - "text" : "Last updated at 2025-06-01 21:58:31 GMT" + "text" : "Last updated at 2025-06-03 12:13:18 GMT" }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2025]" diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 0ea41bc43c..e973c31401 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -40,37 +40,37 @@ "data" : [ [ "Perl", - 518 + 586 ], [ "Raku", - 532 + 586 ], [ "Blog", - 403 + 281 ] ], - "id" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" + "id" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas" }, { "data" : [ [ "Perl", - 584 + 518 ], [ "Raku", - 584 + 532 ], [ "Blog", - 280 + 403 ] ], - "id" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas" + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld" }, { "data" : [ @@ -112,11 +112,11 @@ "data" : [ [ "Perl", - 484 + 486 ], [ "Raku", - 492 + 494 ] ], "id" : "Ulrich Rieke", @@ -176,7 +176,7 @@ "data" : [ [ "Perl", - 464 + 466 ], [ "Raku", @@ -184,7 +184,7 @@ ], [ "Blog", - 232 + 233 ] ], "id" : "W. Luis Mochan", @@ -212,7 +212,7 @@ "data" : [ [ "Perl", - 635 + 637 ], [ "Blog", @@ -286,11 +286,11 @@ "data" : [ [ "Perl", - 372 + 374 ], [ "Blog", - 179 + 180 ] ], "id" : "Peter Campbell Smith", @@ -304,7 +304,7 @@ ], [ "Raku", - 509 + 511 ], [ "Blog", @@ -336,7 +336,7 @@ ], [ "Raku", - 437 + 439 ] ], "id" : "Feng Chang", @@ -392,7 +392,7 @@ "data" : [ [ "Perl", - 227 + 229 ], [ "Raku", @@ -400,7 +400,7 @@ ], [ "Blog", - 78 + 79 ] ], "id" : "Ali Moradi", @@ -438,7 +438,7 @@ "data" : [ [ "Perl", - 386 + 388 ] ], "id" : "Niels van Dijke", @@ -448,11 +448,11 @@ "data" : [ [ "Perl", - 264 + 266 ], [ "Blog", - 119 + 120 ] ], "id" : "Robbie Hatley", @@ -558,7 +558,7 @@ "data" : [ [ "Perl", - 286 + 288 ], [ "Raku", @@ -805,14 +805,14 @@ "y" : 2960 }, { - "drilldown" : "Laurent Rosenfeld", - "name" : "3: Laurent Rosenfeld", + "drilldown" : "Jaldhar H. Vyas", + "name" : "3: Jaldhar H. Vyas", "y" : 2906 }, { - "drilldown" : "Jaldhar H. Vyas", - "name" : "4: Jaldhar H. Vyas", - "y" : 2896 + "drilldown" : "Laurent Rosenfeld", + "name" : "4: Laurent Rosenfeld", + "y" : 2906 }, { "drilldown" : "Arne Sommer", @@ -827,7 +827,7 @@ { "drilldown" : "Ulrich Rieke", "name" : "7: Ulrich Rieke", - "y" : 1952 + "y" : 1960 }, { "drilldown" : "Flavio Poletti", @@ -847,7 +847,7 @@ { "drilldown" : "W. Luis Mochan", "name" : "11: W. Luis Mochan", - "y" : 1396 + "y" : 1402 }, { "drilldown" : "Adam Russell", @@ -857,7 +857,7 @@ { "drilldown" : "E. Choroba", "name" : "13: E. Choroba", - "y" : 1384 + "y" : 1388 }, { "drilldown" : "Colin Crain", @@ -882,12 +882,12 @@ { "drilldown" : "Peter Campbell Smith", "name" : "18: Peter Campbell Smith", - "y" : 1102 + "y" : 1108 }, { "drilldown" : "Mark Anderson", "name" : "19: Mark Anderson", - "y" : 1070 + "y" : 1074 }, { "drilldown" : "Thomas Kohler", @@ -897,7 +897,7 @@ { "drilldown" : "Feng Chang", "name" : "21: Feng Chang", - "y" : 918 + "y" : 922 }, { "drilldown" : "Cheok-Yin Fung", @@ -917,7 +917,7 @@ { "drilldown" : "Ali Moradi", "name" : "25: Ali Moradi", - "y" : 836 + "y" : 842 }, { "drilldown" : "Duncan C. White", @@ -932,12 +932,12 @@ { "drilldown" : "Niels van Dijke", "name" : "28: Niels van Dijke", - "y" : 772 + "y" : 776 }, { "drilldown" : "Robbie Hatley", "name" : "29: Robbie Hatley", - "y" : 766 + "y" : 772 }, { "drilldown" : "Packy Anderson", @@ -972,7 +972,7 @@ { "drilldown" : "David Ferrone", "name" : "36: David Ferrone", - "y" : 612 + "y" : 616 }, { "drilldown" : "Matthias Muth", @@ -1049,7 +1049,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the score breakdown. Last updated at 2025-06-01 21:58:31 GMT" + "text" : "Click the columns to drilldown the score breakdown. Last updated at 2025-06-03 12:13:18 GMT" }, "title" : { "text" : "Team Leaders (TOP 50)" diff --git a/stats/pwc-summary-1-30.json b/stats/pwc-summary-1-30.json index 121c85ccea..a05e4b1d99 100644 --- a/stats/pwc-summary-1-30.json +++ b/stats/pwc-summary-1-30.json @@ -22,9 +22,9 @@ 3, 0, 2, - 36, + 38, 93, - 227, + 229, 44, 13, 8, @@ -68,7 +68,7 @@ 0, 0, 0, - 95, + 97, 0, 0, 2, @@ -94,7 +94,7 @@ 0, 0, 13, - 78, + 79, 0, 32, 4, @@ -115,7 +115,7 @@ } ], "subtitle" : { - "text" : "[Champions: 30] Last updated at 2025-06-01 21:58:31 GMT" + "text" : "[Champions: 30] Last updated at 2025-06-03 12:13:18 GMT" }, "title" : { "text" : "The Weekly Challenge [2019 - 2025]" diff --git a/stats/pwc-summary-121-150.json b/stats/pwc-summary-121-150.json index 5fe580f6a7..ab2a137247 100644 --- a/stats/pwc-summary-121-150.json +++ b/stats/pwc-summary-121-150.json @@ -115,7 +115,7 @@ } ], "subtitle" : { - "text" : "[Champions: 30] Last updated at 2025-06-01 21:58:31 GMT" + "text" : "[Champions: 30] Last updated at 2025-06-03 12:13:18 GMT" }, "title" : {