From 25572447da12014ff4f20d22dcc3260e8a906f99 Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Tue, 18 Nov 2025 10:16:58 +0000 Subject: - Added solutions by Eric Cheung. - Added solutions by Ulrich Rieke. - Added solutions by David Ferrone. - Added solutions by Mark Anderson. - Added solutions by Peter Meszaros. - Added solutions by Andreas Mahnke. - Added solutions by PokGoPun. - Added solutions by Benjamin Andre. - Added solutions by Ali Moradi. - Added solutions by E. Choroba. - Added solutions by Niels van Dijke. - Added solutions by W. Luis Mochan. - Added solutions by Matthew Neleigh. - Added solutions by Thomas Kohler. - Added solutions by Athanasius. --- challenge-348/eric-cheung/python/ch-1.py | 15 + challenge-348/eric-cheung/python/ch-2.py | 39 ++ challenge-348/perlboy1967/perl/ch-1.pl | 42 +++ challenge-348/perlboy1967/perl/ch-2.pl | 51 +++ challenge-348/perlboy1967/perl/ch1.pl | 42 --- challenge-348/perlboy1967/perl/ch2.pl | 51 --- challenge-348/ulrich-rieke/cpp/ch-1.cpp | 29 ++ challenge-348/ulrich-rieke/cpp/ch-2.cpp | 38 ++ challenge-348/ulrich-rieke/haskell/ch-1.hs | 23 ++ challenge-348/ulrich-rieke/haskell/ch-2.hs | 34 ++ challenge-348/ulrich-rieke/perl/ch-1.pl | 35 ++ challenge-348/ulrich-rieke/perl/ch-2.pl | 33 ++ challenge-348/ulrich-rieke/python/ch-1.py | 19 + challenge-348/ulrich-rieke/python/ch-2.py | 16 + challenge-348/ulrich-rieke/raku/ch-1.raku | 16 + challenge-348/ulrich-rieke/raku/ch-2.raku | 29 ++ challenge-348/ulrich-rieke/rust/ch-1.rs | 26 ++ challenge-348/ulrich-rieke/rust/ch-2.rs | 28 ++ stats/pwc-challenge-347.json | 548 +++++++++++++++++++++++++++++ stats/pwc-current.json | 306 +--------------- 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 | 25 +- stats/pwc-language-breakdown-summary.json | 8 +- stats/pwc-leaders.json | 56 +-- stats/pwc-summary-1-30.json | 8 +- stats/pwc-summary-121-150.json | 2 +- stats/pwc-summary-151-180.json | 4 +- stats/pwc-summary-181-210.json | 6 +- stats/pwc-summary-211-240.json | 4 +- stats/pwc-summary-241-270.json | 2 +- stats/pwc-summary-271-300.json | 6 +- stats/pwc-summary-301-330.json | 10 +- stats/pwc-summary-31-60.json | 6 +- stats/pwc-summary-61-90.json | 6 +- stats/pwc-summary-91-120.json | 2 +- stats/pwc-summary.json | 36 +- stats/pwc-yearly-language-summary.json | 10 +- 42 files changed, 1137 insertions(+), 486 deletions(-) create mode 100755 challenge-348/eric-cheung/python/ch-1.py create mode 100755 challenge-348/eric-cheung/python/ch-2.py create mode 100755 challenge-348/perlboy1967/perl/ch-1.pl create mode 100755 challenge-348/perlboy1967/perl/ch-2.pl delete mode 100755 challenge-348/perlboy1967/perl/ch1.pl delete mode 100755 challenge-348/perlboy1967/perl/ch2.pl create mode 100755 challenge-348/ulrich-rieke/cpp/ch-1.cpp create mode 100755 challenge-348/ulrich-rieke/cpp/ch-2.cpp create mode 100755 challenge-348/ulrich-rieke/haskell/ch-1.hs create mode 100755 challenge-348/ulrich-rieke/haskell/ch-2.hs create mode 100755 challenge-348/ulrich-rieke/perl/ch-1.pl create mode 100755 challenge-348/ulrich-rieke/perl/ch-2.pl create mode 100755 challenge-348/ulrich-rieke/python/ch-1.py create mode 100755 challenge-348/ulrich-rieke/python/ch-2.py create mode 100755 challenge-348/ulrich-rieke/raku/ch-1.raku create mode 100755 challenge-348/ulrich-rieke/raku/ch-2.raku create mode 100755 challenge-348/ulrich-rieke/rust/ch-1.rs create mode 100755 challenge-348/ulrich-rieke/rust/ch-2.rs create mode 100644 stats/pwc-challenge-347.json diff --git a/challenge-348/eric-cheung/python/ch-1.py b/challenge-348/eric-cheung/python/ch-1.py new file mode 100755 index 0000000000..4848b52c72 --- /dev/null +++ b/challenge-348/eric-cheung/python/ch-1.py @@ -0,0 +1,15 @@ + +## strInput = "textbook" ## Example 1 +## strInput = "book" ## Example 2 +## strInput = "AbCdEfGh" ## Example 3 +## strInput = "rhythmmyth" ## Example 4 +strInput = "UmpireeAudio" ## Example 5 + +arrVowel = ["a", "e", "i", "o", "u"] + +nLen = int(len(strInput) / 2) + +nVowel_01 = len([charLoop for charLoop in strInput[:nLen].lower() if charLoop in arrVowel]) +nVowel_02 = len([charLoop for charLoop in strInput[nLen:].lower() if charLoop in arrVowel]) + +print (nVowel_01 == nVowel_02 and nVowel_01 > 0) diff --git a/challenge-348/eric-cheung/python/ch-2.py b/challenge-348/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..5f2d6f9969 --- /dev/null +++ b/challenge-348/eric-cheung/python/ch-2.py @@ -0,0 +1,39 @@ + +from datetime import datetime, timedelta + +## Example 1 +## strSource = "02:30" +## strTarget = "02:45" + +## Example 2 +## strSource = "11:55" +## strTarget = "12:15" + +## Example 3 +## strSource = "09:00" +## strTarget = "13:00" + +## Example 4 +## strSource = "23:45" +## strTarget = "00:30" + +## Example 5 +strSource = "14:20" +strTarget = "15:25" + +arrMin = [60, 15, 5, 1] +strTimeFormat = "%H:%M" + +nDayAdd = (1 if strSource > strTarget else 0) + +objSource = datetime.strptime(strSource, strTimeFormat) +objTarget = datetime.strptime(strTarget, strTimeFormat) + timedelta(days = nDayAdd) + +nMinDiff = int((objTarget - objSource).total_seconds() / 60) +nOperation = 0 + +for nMinLoop in arrMin: + nOperation = nOperation + int(nMinDiff / nMinLoop) + nMinDiff = nMinDiff - int(nMinDiff / nMinLoop) * nMinLoop + +print (nOperation) diff --git a/challenge-348/perlboy1967/perl/ch-1.pl b/challenge-348/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..9ec38e6739 --- /dev/null +++ b/challenge-348/perlboy1967/perl/ch-1.pl @@ -0,0 +1,42 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 1: String Alike +Submitted by: Mohammad Sajid Anwar + +You are given a string of even length. + +Write a script to find out whether the given string can be split into two +halves of equal lengths, each with the same non-zero number of vowels. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +use boolean; + +sub stringAlike ($str) { + my $len = length($str); + # Must be even length string + return false unless $len % 2 == 0; + # Half the length for two identical long sub-strings + $len >>= 1; + # Get both half and their vowel length + my @p = grep { $_ != 0 } map { length s/[^aeiou]+//gir } unpack("(A$len)(A$len)",$str); + # Compare length and zero length check + return boolean (@p == 2 and $p[0] == $p[1]) +} + +is(stringAlike('textbook'),false,'Example 1'); +is(stringAlike('book'),true,'Example 2'); +is(stringAlike('AbCdEfGh'),true,'Example 3'); +is(stringAlike('rhythmmyth'),false,'Example 4'); +is(stringAlike('UmpireeAudio'),false,'Example 5'); + +done_testing; diff --git a/challenge-348/perlboy1967/perl/ch-2.pl b/challenge-348/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..53b83e6eb5 --- /dev/null +++ b/challenge-348/perlboy1967/perl/ch-2.pl @@ -0,0 +1,51 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Covert Time +Submitted by: Mohammad Sajid Anwar + +You are given two strings, $source and $target, containing time in 24-hour time form. + +Write a script to convert the source into target by performing one of the following operations: + +1. Add 1 minute +2. Add 5 minutes +3. Add 15 minutes +4. Add 60 minutes + +Find the total operations needed to get to the target. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +sub convertTime ($source,$target) { + my $steps = 0; + $source =~ s#(\d+):(\d+)#60*$1 + $2#e; + $target =~ s#(\d+):(\d+)#60*$1 + $2#e; + $target += 24*60 unless ($target > $source); + while ($source != $target) { + for (qw{60 15 5 1}) { + if ($source + $_ <= $target) { + $source += $_; last; + } + } + $steps++; + } + return $steps; +} + +is(convertTime('02:30','02:45'),1,'Example 1'); +is(convertTime('11:55','12:15'),2,'Example 2'); +is(convertTime('09:00','13:00'),4,'Example 3'); +is(convertTime('23:45','00:30'),3,'Example 4'); +is(convertTime('14:20','15:25'),2,'Example 5'); +is(convertTime('00:00','23:59'),32,'Own Example'); + +done_testing; diff --git a/challenge-348/perlboy1967/perl/ch1.pl b/challenge-348/perlboy1967/perl/ch1.pl deleted file mode 100755 index 9ec38e6739..0000000000 --- a/challenge-348/perlboy1967/perl/ch1.pl +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 1: String Alike -Submitted by: Mohammad Sajid Anwar - -You are given a string of even length. - -Write a script to find out whether the given string can be split into two -halves of equal lengths, each with the same non-zero number of vowels. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -use boolean; - -sub stringAlike ($str) { - my $len = length($str); - # Must be even length string - return false unless $len % 2 == 0; - # Half the length for two identical long sub-strings - $len >>= 1; - # Get both half and their vowel length - my @p = grep { $_ != 0 } map { length s/[^aeiou]+//gir } unpack("(A$len)(A$len)",$str); - # Compare length and zero length check - return boolean (@p == 2 and $p[0] == $p[1]) -} - -is(stringAlike('textbook'),false,'Example 1'); -is(stringAlike('book'),true,'Example 2'); -is(stringAlike('AbCdEfGh'),true,'Example 3'); -is(stringAlike('rhythmmyth'),false,'Example 4'); -is(stringAlike('UmpireeAudio'),false,'Example 5'); - -done_testing; diff --git a/challenge-348/perlboy1967/perl/ch2.pl b/challenge-348/perlboy1967/perl/ch2.pl deleted file mode 100755 index 53b83e6eb5..0000000000 --- a/challenge-348/perlboy1967/perl/ch2.pl +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 2: Covert Time -Submitted by: Mohammad Sajid Anwar - -You are given two strings, $source and $target, containing time in 24-hour time form. - -Write a script to convert the source into target by performing one of the following operations: - -1. Add 1 minute -2. Add 5 minutes -3. Add 15 minutes -4. Add 60 minutes - -Find the total operations needed to get to the target. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -sub convertTime ($source,$target) { - my $steps = 0; - $source =~ s#(\d+):(\d+)#60*$1 + $2#e; - $target =~ s#(\d+):(\d+)#60*$1 + $2#e; - $target += 24*60 unless ($target > $source); - while ($source != $target) { - for (qw{60 15 5 1}) { - if ($source + $_ <= $target) { - $source += $_; last; - } - } - $steps++; - } - return $steps; -} - -is(convertTime('02:30','02:45'),1,'Example 1'); -is(convertTime('11:55','12:15'),2,'Example 2'); -is(convertTime('09:00','13:00'),4,'Example 3'); -is(convertTime('23:45','00:30'),3,'Example 4'); -is(convertTime('14:20','15:25'),2,'Example 5'); -is(convertTime('00:00','23:59'),32,'Own Example'); - -done_testing; diff --git a/challenge-348/ulrich-rieke/cpp/ch-1.cpp b/challenge-348/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..e36d1ba792 --- /dev/null +++ b/challenge-348/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,29 @@ +#include +#include + +bool solution( const std::string & word ) { + static std::string vowels {"aAeEiIoOuU"} ; + int len = static_cast( word.length( ) ) ; + int firstvowels = 0 ; + int secondvowels = 0 ; + for ( char d : word.substr( 0 , len / 2 )) { + if ( vowels.find( d ) != std::string::npos ) { + firstvowels++ ; + } + } + for ( char d : word.substr( len / 2 )) { + if ( vowels.find( d ) != std::string::npos ) { + secondvowels++ ; + } + } + return firstvowels == secondvowels ; +} + +int main( ) { + std::cout << std::boolalpha << solution( "textbook" ) << '\n' ; + std::cout << std::boolalpha << solution( "book" ) << '\n' ; + std::cout << std::boolalpha << solution( "AbCdEfGh" ) << '\n' ; + std::cout << std::boolalpha << solution( "rhythmmyth" ) << '\n' ; + std::cout << std::boolalpha << solution( "UmpireeAudio" ) << '\n' ; + return 0 ; +} diff --git a/challenge-348/ulrich-rieke/cpp/ch-2.cpp b/challenge-348/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..597b2e84a7 --- /dev/null +++ b/challenge-348/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,38 @@ +#include +#include +#include +#include +#include + +int main( ) { + std::cout << "Enter a source time!\n" ; + std::string source , target ; + std::cin >> source ; + std::cout << "Enter a target time!\n" ; + std::cin >> target ; + int sourcehours { std::stoi( source.substr( 0 , 2 )) } ; + int sourceminutes { std::stoi( source.substr( 3 ) ) } ; + int targethours { std::stoi( target.substr( 0 , 2 ) ) } ; + int targetminutes { std::stoi( target.substr( 3 ) ) } ; + if ( targethours < sourcehours ) { + targethours += 24 ; + } + std::vector ops { 1 , 5 , 15 , 60 } ; + int diffminutes = targethours * 60 + targetminutes - ( sourcehours * + 60 + sourceminutes ) ; + std::vector operations ; + while ( diffminutes != 0 ) { + std::vector smaller ; + for ( auto n : ops ) { + if ( n <= diffminutes ) { + smaller.push_back( n ) ; + } + } + int divisor = *std::max_element( smaller.begin( ) , smaller.end( )) ; + operations.push_back( diffminutes / divisor ) ; + diffminutes -= divisor * operations.back( ) ; + } + std::cout << std::accumulate( operations.begin( ) , operations.end( ) , 0 ) + << '\n' ; + return 0 ; +} diff --git a/challenge-348/ulrich-rieke/haskell/ch-1.hs b/challenge-348/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..1ad5f80b08 --- /dev/null +++ b/challenge-348/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,23 @@ +module Challenge348 + where + +solution :: String -> Bool +solution str = (length $ filter ( flip elem vowels ) firsthalf) == (length $ filter + ( flip elem vowels ) secondhalf ) + where + vowels :: [Char] + vowels = "aAeEiIoOuU" + l :: Int + l = length str + firsthalf :: String + firsthalf = take ( div l 2 ) str + secondhalf :: String + secondhalf = drop ( div l 2 ) str + +main :: IO ( ) +main = do + print $ solution "textbook" + print $ solution "book" + print $ solution "AbCdEfGh" + print $ solution "rhythmmyth" + print $ solution "UmpireeAudio" diff --git a/challenge-348/ulrich-rieke/haskell/ch-2.hs b/challenge-348/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..5d89fd94a5 --- /dev/null +++ b/challenge-348/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,34 @@ +module Challenge348_2 + where +import Data.List ( sort ) + +ops :: [Int] +ops = [1 , 5 , 15 , 60] + +findDiffMinutes :: String -> String -> Int +findDiffMinutes source target = + let sourcehours = read $ take 2 source + sourceminutes = read $ take 2 $ drop 3 source + targethours = read $ take 2 target + targetminutes = read $ take 2 $ drop 3 target + in if targethours < sourcehours then ( targethours + 24 ) * 60 + targetminutes + - ( sourcehours * 60 + sourceminutes ) else targethours * 60 + targetminutes + - ( sourcehours * 60 + sourceminutes ) + +findOps :: Int -> Int +findOps diffMinutes = head $ sort $ map sumTuple $ [(a , b , c , d) | a <- [0.. + diffMinutes] , b <- [0..div diffMinutes 5] , c <- [0..div diffMinutes 15] , d <- + [0..div diffMinutes 60] , a * 1 + b * 5 + c * 15 + d * 60 == diffMinutes] + where + sumTuple :: (Int , Int , Int , Int ) -> Int + sumTuple ( a , b , c , d) = a + b + c + d + +main :: IO ( ) +main = do + putStrLn "Enter a source time!" + sourcetime <- getLine + putStrLn "Enter a target time!" + targettime <- getLine + let diffMinutes = findDiffMinutes sourcetime targettime + print $ findOps diffMinutes + diff --git a/challenge-348/ulrich-rieke/perl/ch-1.pl b/challenge-348/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..86aea99827 --- /dev/null +++ b/challenge-348/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +sub solution { + my $word = shift ; + my $vowels = "AaeEiIoOuU" ; + my $firstvowels = 0 ; + my $secondvowels = 0 ; + my $len = length $word ; + for my $c( split( // , substr( $word , 0 , $len / 2 ))) { + if ( index($vowels , $c) != -1 ) { + $firstvowels++ ; + } + } + for my $c ( split( // , substr( $word , $len / 2 ))) { + if ( index( $vowels , $c ) != -1 ) { + $secondvowels++ ; + } + } + if ( $firstvowels == $secondvowels ) { + return "true" ; + } + else { + return "false" ; + } +} +say solution("textbook") ; +say solution( "book" ) ; +say solution( "AbCdEfGh" ) ; +say solution( "rhythmmyth" ) ; +say solution( "UmpireeAudio" ) ; + + diff --git a/challenge-348/ulrich-rieke/perl/ch-2.pl b/challenge-348/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..41cdcaaf87 --- /dev/null +++ b/challenge-348/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,33 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use List::Util qw ( max sum) ; + +say "Enter a source time!" ; +my $source = ; +chomp $source ; +say "Enter a target time!" ; +my $target = ; +chomp $target ; +my ( $sourcehours , $sourceminutes , $targethours , $targetminutes ) ; +if ( $source =~ /(\d{2}):(\d{2})/ ) { + ($sourcehours , $sourceminutes ) = ( $1 , $2 ) ; +} +if ( $target =~ /(\d{2})\:(\d{2})/ ) { + ( $targethours , $targetminutes ) = ($1 , $2 ) ; +} +if ( $targethours < $sourcehours ) { + $targethours += 24 ; +} +my @ops = (1 , 5 , 15 , 60 ) ; +my @operations ; +my $diffminutes = $targethours * 60 + $targetminutes - ( $sourcehours * 60 + + $sourceminutes ) ; +while ( $diffminutes != 0 ) { + my @smaller = grep { $_ <= $diffminutes } @ops ; + my $divisor = max( @smaller ) ; + push( @operations , int( $diffminutes / $divisor ) ) ; + $diffminutes -= $divisor * $operations[-1] ; +} +say sum( @operations ) ; diff --git a/challenge-348/ulrich-rieke/python/ch-1.py b/challenge-348/ulrich-rieke/python/ch-1.py new file mode 100755 index 0000000000..387ef11229 --- /dev/null +++ b/challenge-348/ulrich-rieke/python/ch-1.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +def solution(word): + vowels = "aAeEiIoOuU" + leng = len( word ) + firstvowels = 0 + secondvowels = 0 + for c in word[0:leng // 2 ]: + if c in vowels: + firstvowels += 1 + for d in word[leng // 2:]: + if d in vowels: + secondvowels += 1 + return firstvowels == secondvowels + +print( solution("textbook")) +print( solution("book")) +print( solution("AbCdEfGh")) +print( solution("rhythmmyth")) +print( solution("UmpireeAudio")) diff --git a/challenge-348/ulrich-rieke/python/ch-2.py b/challenge-348/ulrich-rieke/python/ch-2.py new file mode 100755 index 0000000000..82d140d9da --- /dev/null +++ b/challenge-348/ulrich-rieke/python/ch-2.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 +source = input("Enter a source time!\n") +target = input( "Enter a target time!\n") +(sourcehours , sourceminutes) = (int( source[0:2] ) , int(source[3:])) +(targethours , targetminutes ) = (int( target[0:2] ) , int( target[3:] )) +if targethours < sourcehours: + targethours += 24 +ops = [1 , 5 , 15 , 60] +diffminutes = targethours * 60 + targetminutes - ( sourcehours * 60 + sourceminutes ) +operations = [] +while diffminutes != 0: + selected = [x for x in ops if x <= diffminutes] + divisor = max ( selected ) + operations.append( diffminutes // divisor ) + diffminutes -= divisor * operations[-1] +print( sum( operations ) ) diff --git a/challenge-348/ulrich-rieke/raku/ch-1.raku b/challenge-348/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..afb3ebd820 --- /dev/null +++ b/challenge-348/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,16 @@ +use v6 ; + +sub solution( $word ) { + my $vowels = "aAeEiIoOuU".comb.Set ; + my $len = $word.chars ; + my $firstvowels = $word.substr(0 , $len div 2).comb.grep( {$_ (elem) $vowels} ). + elems ; + my $secondvowels = $word.substr( $len div 2 ).comb.grep( {$_ (elem) $vowels} ). + elems ; + return $firstvowels == $secondvowels ; +} +say( solution( "textbook" )) ; +say( solution( "book" ) ) ; +say( solution( "AbCdEfGh" )) ; +say( solution( "rhythmmyth" )) ; +say( solution ( "UmpireeAudio" ) ) ; diff --git a/challenge-348/ulrich-rieke/raku/ch-2.raku b/challenge-348/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..ab19256f91 --- /dev/null +++ b/challenge-348/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,29 @@ +use v6 ; + +say "Enter a source time!" ; +my $source = $*IN.get ; +say "Enter a target time!" ; +my $target = $*IN.get ; +my @ops = (1 , 5 , 15 , 60 ) ; +my ( $sourcehours , $sourceminutes , $targethours , $targetminutes ) ; +if ( $source ~~ /(\d ** 2) ':' (\d ** 2 )/) { + ($sourcehours , $sourceminutes ) = ( +$0 , +$1 ) ; +} +if ( $target ~~ /(\d ** 2) ':' (\d ** 2)/ ) { + ($targethours , $targetminutes ) = ( +$0 , +$1 ) ; +} +if ( $targethours < $sourcehours ) { + $targethours += 24 ; +} +my $diffminutes = $targethours * 60 + $targetminutes - ( $sourcehours * 60 + + $sourceminutes ) ; +my @operations ; +while ( $diffminutes != 0 ) { + my @smaller = @ops.grep( { $_ <= $diffminutes } ) ; + my $divisor = @smaller.max ; + @operations.push( $diffminutes div $divisor ) ; + $diffminutes -= $divisor * @operations[*-1] ; +} +say [+] @operations ; + + diff --git a/challenge-348/ulrich-rieke/rust/ch-1.rs b/challenge-348/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..b31397c981 --- /dev/null +++ b/challenge-348/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,26 @@ +fn find_solution( word : &str ) -> bool { + let vowels : Vec = vec!['A' , 'a' , 'E' , 'e' , 'I' , 'i' , 'O' , 'o' , + 'U' , 'u'] ; + let mut first_vowels : usize = 0 ; + let mut second_vowels : usize = 0 ; + let len : usize = word.chars( ).count( ) ; + for c in word.chars( ).take( len / 2 ) { + if vowels.contains( &c ) { + first_vowels += 1 ; + } + } + for c in word.chars( ).skip( len / 2 ).take( len / 2) { + if vowels.contains( &c ) { + second_vowels += 1 ; + } + } + first_vowels == second_vowels +} + +fn main() { + println!("{}" , find_solution( "textbook")); + println!("{}" , find_solution( "book" ) ) ; + println!("{}" , find_solution( "AbCdEfGh" )) ; + println!("{}" , find_solution( "rhythmmyth" )) ; + println!("{}" , find_solution( "UmpireeAudio" ) ) ; +} diff --git a/challenge-348/ulrich-rieke/rust/ch-2.rs b/challenge-348/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..52473cf0b4 --- /dev/null +++ b/challenge-348/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,28 @@ +use std::io ; + +fn main() { + println!("Enter a source time!"); + let mut source : String = String::new( ) ; + io::stdin( ).read_line( &mut source ).unwrap( ) ; + println!("Enter a target time!") ; + let mut target : String = String::new( ) ; + io::stdin( ).read_line( &mut target ).unwrap( ) ; + let dividers : Vec = vec![1 , 5 , 15 , 60] ; + let starthours : u32 = source[0..2].parse::( ).unwrap( ) ; + let startminutes : u32 = source[3..=4].parse::( ).unwrap( ) ; + let mut targethours : u32 = target[0..2].parse::( ).unwrap( ) ; + let targetminutes : u32 = target[3..=4].parse::( ).unwrap( ) ; + if targethours < starthours { + targethours += 24 ; + } + let mut diff_minutes : u32 = targethours * 60 + targetminutes - ( + starthours * 60 + startminutes ) ; + let mut operations : Vec = Vec::new( ) ; + while diff_minutes != 0 { + let divisor : u32 = *dividers.iter( ).filter( |&n| *n <= + diff_minutes ).max( ).unwrap( ) ; + operations.push( diff_minutes / divisor ) ; + diff_minutes -= divisor * operations[operations.len( ) - 1] ; + } + println!("{}" , operations.into_iter( ).sum::( ) ) ; +} diff --git a/stats/pwc-challenge-347.json b/stats/pwc-challenge-347.json new file mode 100644 index 0000000000..36480b48d7 --- /dev/null +++ b/stats/pwc-challenge-347.json @@ -0,0 +1,548 @@ +{ + "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 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Arne Sommer", + "name" : "Arne Sommer" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Athanasius", + "name" : "Athanasius" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Bob Lied", + "name" : "Bob Lied" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "David Ferrone", + "name" : "David Ferrone" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Feng Chang", + "name" : "Feng Chang" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas" + }, + { + "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 + ] + ], + "id" : "Matthew Neleigh", + "name" : "Matthew Neleigh" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Matthias Muth", + "name" : "Matthias Muth" + }, + { + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 1 + ] + ], + "id" : "Mohammad Sajid Anwar", + "name" : "Mohammad Sajid Anwar" + }, + { + "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" : "Arne Sommer", + "name" : "Arne Sommer", + "y" : 3 + }, + { + "drilldown" : "Athanasius", + "name" : "Athanasius", + "y" : 4 + }, + { + "drilldown" : "Bob Lied", + "name" : "Bob Lied", + "y" : 2 + }, + { + "drilldown" : "David Ferrone", + "name" : "David Ferrone", + "y" : 2 + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Feng Chang", + "name" : "Feng Chang", + "y" : 3 + }, + { + "drilldown" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas", + "y" : 5 + }, + { + "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" : "Matthew Neleigh", + "name" : "Matthew Neleigh", + "y" : 2 + }, + { + "drilldown" : "Matthias Muth", + "name" : "Matthias Muth", + "y" : 3 + }, + { + "drilldown" : "Mohammad Sajid Anwar", + "name" : "Mohammad Sajid Anwar", + "y" : 2 + }, + { + "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 - 347" + } + ], + "subtitle" : { + "text" : "[Champions: 28] Last updated at 2025-11-18 10:16:44 GMT" + }, + "title" : { + "text" : "The Weekly Challenge - 347" + }, + "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 397069cfb2..920c39347e 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -28,20 +28,6 @@ "id" : "Andreas Mahnke", "name" : "Andreas Mahnke" }, - { - "data" : [ - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Arne Sommer", - "name" : "Arne Sommer" - }, { "data" : [ [ @@ -56,16 +42,6 @@ "id" : "Athanasius", "name" : "Athanasius" }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Bob Lied", - "name" : "Bob Lied" - }, { "data" : [ [ @@ -86,76 +62,6 @@ "id" : "E. Choroba", "name" : "E. Choroba" }, - { - "data" : [ - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Feng Chang", - "name" : "Feng Chang" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas" - }, - { - "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" : [ [ @@ -176,34 +82,6 @@ "id" : "Matthew Neleigh", "name" : "Matthew Neleigh" }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Matthias Muth", - "name" : "Matthias Muth" - }, - { - "data" : [ - [ - "Perl", - 1 - ], - [ - "Raku", - 1 - ] - ], - "id" : "Mohammad Sajid Anwar", - "name" : "Mohammad Sajid Anwar" - }, { "data" : [ [ @@ -214,38 +92,6 @@ "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" : [ [ @@ -256,62 +102,6 @@ "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" : [ [ @@ -353,16 +143,6 @@ ], "id" : "W. Luis Mochan", "name" : "W. Luis Mochan" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Wanderdoc", - "name" : "Wanderdoc" } ] }, @@ -392,21 +172,11 @@ "name" : "Andreas Mahnke", "y" : 2 }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 3 - }, { "drilldown" : "Athanasius", "name" : "Athanasius", "y" : 4 }, - { - "drilldown" : "Bob Lied", - "name" : "Bob Lied", - "y" : 2 - }, { "drilldown" : "David Ferrone", "name" : "David Ferrone", @@ -417,31 +187,6 @@ "name" : "E. Choroba", "y" : 2 }, - { - "drilldown" : "Feng Chang", - "name" : "Feng Chang", - "y" : 3 - }, - { - "drilldown" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas", - "y" : 5 - }, - { - "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", @@ -452,56 +197,16 @@ "name" : "Matthew Neleigh", "y" : 2 }, - { - "drilldown" : "Matthias Muth", - "name" : "Matthias Muth", - "y" : 3 - }, - { - "drilldown" : "Mohammad Sajid Anwar", - "name" : "Mohammad Sajid Anwar", - "y" : 2 - }, { "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", @@ -516,21 +221,16 @@ "drilldown" : "W. Luis Mochan", "name" : "W. Luis Mochan", "y" : 3 - }, - { - "drilldown" : "Wanderdoc", - "name" : "Wanderdoc", - "y" : 2 } ], - "name" : "The Weekly Challenge - 347" + "name" : "The Weekly Challenge - 348" } ], "subtitle" : { - "text" : "[Champions: 28] Last updated at 2025-11-17 03:20:10 GMT" + "text" : "[Champions: 12] Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { - "text" : "The Weekly Challenge - 347" + "text" : "The Weekly Challenge - 348" }, "tooltip" : { "followPointer" : 1, diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json index 45e6520265..0a0c365cab 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-11-17 03:20:10 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2020.json b/stats/pwc-language-breakdown-2020.json index 48ecc8b5bf..05944b7cb3 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-11-17 03:20:10 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2021.json b/stats/pwc-language-breakdown-2021.json index ddd4186020..f222277ab3 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-11-17 03:20:10 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2022.json b/stats/pwc-language-breakdown-2022.json index 45294540f3..f56d693a7f 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-11-17 03:20:10 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2023.json b/stats/pwc-language-breakdown-2023.json index cff43b002f..7fdec40401 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-11-17 03:20:10 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2024.json b/stats/pwc-language-breakdown-2024.json index eb7f0c5efe..5dc338df28 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-11-17 03:20:10 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2025.json b/stats/pwc-language-breakdown-2025.json index a4c6b04a2d..d7d8e8ac49 100644 --- a/stats/pwc-language-breakdown-2025.json +++ b/stats/pwc-language-breakdown-2025.json @@ -4,6 +4,24 @@ }, "drilldown" : { "series" : [ + { + "data" : [ + [ + "Perl", + 22 + ], + [ + "Raku", + 6 + ], + [ + "Blog", + 4 + ] + ], + "id" : "348", + "name" : "348" + }, { "data" : [ [ @@ -832,6 +850,11 @@ { "colorByPoint" : "true", "data" : [ + { + "drilldown" : "348", + "name" : "348", + "y" : 32 + }, { "drilldown" : "347", "name" : "347", @@ -1062,7 +1085,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-17 03:20:10 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 5a013ea832..b72291ea9e 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -10,15 +10,15 @@ "data" : [ [ "Perl", - 17894 + 17916 ], [ "Raku", - 9905 + 9911 ], [ "Blog", - 6415 + 6419 ] ], "dataLabels" : { @@ -37,7 +37,7 @@ } ], "subtitle" : { - "text" : "Last updated at 2025-11-17 03:20:10 GMT" + "text" : "Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2025]" diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 6029c529a0..40953e1b5e 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -94,11 +94,11 @@ "data" : [ [ "Perl", - 588 + 590 ], [ "Raku", - 549 + 551 ], [ "Blog", @@ -112,11 +112,11 @@ "data" : [ [ "Perl", - 532 + 534 ], [ "Raku", - 539 + 541 ] ], "id" : "Ulrich Rieke", @@ -158,7 +158,7 @@ "data" : [ [ "Perl", - 512 + 514 ], [ "Raku", @@ -166,7 +166,7 @@ ], [ "Blog", - 256 + 257 ] ], "id" : "W. Luis Mochan", @@ -194,7 +194,7 @@ "data" : [ [ "Perl", - 683 + 685 ], [ "Blog", @@ -300,11 +300,11 @@ "data" : [ [ "Perl", - 296 + 298 ], [ "Blog", - 289 + 291 ] ], "id" : "Thomas Kohler", @@ -318,7 +318,7 @@ ], [ "Raku", - 557 + 559 ], [ "Blog", @@ -368,7 +368,7 @@ "data" : [ [ "Perl", - 273 + 275 ], [ "Raku", @@ -376,7 +376,7 @@ ], [ "Blog", - 102 + 103 ] ], "id" : "Ali Moradi", @@ -460,7 +460,7 @@ "data" : [ [ "Perl", - 434 + 436 ] ], "id" : "Niels van Dijke", @@ -544,7 +544,7 @@ "data" : [ [ "Perl", - 332 + 334 ], [ "Raku", @@ -594,7 +594,7 @@ "data" : [ [ "Perl", - 315 + 317 ] ], "id" : "Matthew Neleigh", @@ -622,7 +622,7 @@ "data" : [ [ "Perl", - 296 + 298 ] ], "id" : "Peter Meszaros", @@ -826,12 +826,12 @@ { "drilldown" : "Athanasius", "name" : "6: Athanasius", - "y" : 2282 + "y" : 2290 }, { "drilldown" : "Ulrich Rieke", "name" : "7: Ulrich Rieke", - "y" : 2142 + "y" : 2150 }, { "drilldown" : "Flavio Poletti", @@ -846,7 +846,7 @@ { "drilldown" : "W. Luis Mochan", "name" : "10: W. Luis Mochan", - "y" : 1540 + "y" : 1546 }, { "drilldown" : "Dave Jacoby", @@ -856,7 +856,7 @@ { "drilldown" : "E. Choroba", "name" : "12: E. Choroba", - "y" : 1480 + "y" : 1484 }, { "drilldown" : "Adam Russell", @@ -891,12 +891,12 @@ { "drilldown" : "Thomas Kohler", "name" : "19: Thomas Kohler", - "y" : 1170 + "y" : 1178 }, { "drilldown" : "Mark Anderson", "name" : "20: Mark Anderson", - "y" : 1166 + "y" : 1170 }, { "drilldown" : "Feng Chang", @@ -911,7 +911,7 @@ { "drilldown" : "Ali Moradi", "name" : "23: Ali Moradi", - "y" : 980 + "y" : 986 }, { "drilldown" : "Jan Krnavek", @@ -941,7 +941,7 @@ { "drilldown" : "Niels van Dijke", "name" : "29: Niels van Dijke", - "y" : 868 + "y" : 872 }, { "drilldown" : "Duncan C. White", @@ -971,7 +971,7 @@ { "drilldown" : "David Ferrone", "name" : "35: David Ferrone", - "y" : 708 + "y" : 712 }, { "drilldown" : "Bruce Gray", @@ -986,7 +986,7 @@ { "drilldown" : "Matthew Neleigh", "name" : "38: Matthew Neleigh", - "y" : 630 + "y" : 634 }, { "drilldown" : "Simon Proctor", @@ -996,7 +996,7 @@ { "drilldown" : "Peter Meszaros", "name" : "40: Peter Meszaros", - "y" : 592 + "y" : 596 }, { "drilldown" : "Abigail", @@ -1053,7 +1053,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the score breakdown. Last updated at 2025-11-17 03:20:10 GMT" + "text" : "Click the columns to drilldown the score breakdown. Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "Team Leaders (TOP 50)" diff --git a/stats/pwc-summary-1-30.json b/stats/pwc-summary-1-30.json index af74e3070b..3b3cd56d52 100644 --- a/stats/pwc-summary-1-30.json +++ b/stats/pwc-summary-1-30.json @@ -24,11 +24,11 @@ 2, 43, 93, - 273, + 275, 44, 13, 8, - 94, + 96, 22, 8, 1, @@ -94,7 +94,7 @@ 0, 0, 13, - 102, + 103, 0, 32, 4, @@ -115,7 +115,7 @@ } ], "subtitle" : { - "text" : "[Champions: 30] Last updated at 2025-11-17 03:20:10 GMT" + "text" : "[Champions: 30] Last updated at 2025-11-18 10:16:49 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 959320e267..62e3eee4a9 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-11-17 03:20:10 GMT" + "text" : "[Champions: 30] Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge [2019 - 2025]" diff --git a/stats/pwc-summary-151-180.json b/stats/pwc-summary-151-180.json index 80a344c1a0..ee164e33a3 100644 --- a/stats/pwc-summary-151-180.json +++ b/stats/pwc-summary-151-180.json @@ -71,7 +71,7 @@ 0, 0, 0, - 557, + 559, 1, 49, 91 @@ -115,7 +115,7 @@ } ], "subtitle" : { - "text" : "[Champions: 30] Last updated at 2025-11-17 03:20:10 GMT" + "text" : "[Champions: 30] Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge [2019 - 2025]" diff --git a/stats/pwc-summary-181-210.json b/stats/pwc-summary-181-210.json index 384a61130f..b507cd3a3e 100644 --- a/stats/pwc-summary-181-210.json +++ b/stats/pwc-summary-181-210.json @@ -14,7 +14,7 @@ 0, 0, 4, - 315, + 317, 0, 4, 249, @@ -37,7 +37,7 @@ 88, 8, 3, - 434, + 436, 2, 0 ], @@ -115,7 +115,7 @@ } ], "subtitle" : { - "text" : "[Champions: 30] Last updated at 2025-11-17 03:20:10 GMT" + "text" : "[Champions: 30] Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge [2019 - 2025]" diff --git a/stats/pwc-summary-211-240.json b/stats/pwc-summary-211-240.json index e80afc91b0..c180f37c13 100644 --- a/stats/pwc-summary-211-240.json +++ b/stats/pwc-summary-211-240.json @@ -28,7 +28,7 @@ 0, 420, 1, - 296, + 298, 10, 11, 7, @@ -115,7 +115,7 @@ } ], "subtitle" : { - "text" : "[Champions: 30] Last updated at 2025-11-17 03:20:10 GMT" + "text" : "[Champions: 30] Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge [2019 - 2025]" diff --git a/stats/pwc-summary-241-270.json b/stats/pwc-summary-241-270.json index 6f21f34d82..31731e3f41 100644 --- a/stats/pwc-summary-241-270.json +++ b/stats/pwc-summary-241-270.json @@ -115,7 +115,7 @@ } ], "subtitle" : { - "text" : "[Champions: 30] Last updated at 2025-11-17 03:20:10 GMT" + "text" : "[Champions: 30] Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge [2019 - 2025]" diff --git a/stats/pwc-summary-271-300.json b/stats/pwc-summary-271-300.json index 6414c4e098..5ef20796ab 100644 --- a/stats/pwc-summary-271-300.json +++ b/stats/pwc-summary-271-300.json @@ -38,7 +38,7 @@ 6, 4, 2, - 296, + 298, 1 ], "name" : "Perl" @@ -108,14 +108,14 @@ 0, 0, 0, - 289, + 291, 0 ], "name" : "Blog" } ], "subtitle" : { - "text" : "[Champions: 30] Last updated at 2025-11-17 03:20:10 GMT" + "text" : "[Champions: 30] Last updated at 2025-11-18 10:16:49 GMT" }, "title" : { "text" : "The Weekly Challenge [2019 - 2025]" diff --git a/stats/pwc-summary-301-330.json b/stats/pwc-summary-301-330.json index f8029ca3ca..d27