aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2025-11-06 11:23:04 +0000
committerMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2025-11-06 11:23:04 +0000
commitd6d9df839741d01f80758e2acc9e6cc83ad5336a (patch)
tree409c5f934fbc2a708aeda6671a8edc960eaea110
parent4ca41f3aebdcb4020b0e554e5e68339cb9593ce4 (diff)
downloadperlweeklychallenge-club-d6d9df839741d01f80758e2acc9e6cc83ad5336a.tar.gz
perlweeklychallenge-club-d6d9df839741d01f80758e2acc9e6cc83ad5336a.tar.bz2
perlweeklychallenge-club-d6d9df839741d01f80758e2acc9e6cc83ad5336a.zip
- Added solutions by Ulrich Rieke.
-rwxr-xr-xchallenge-346/ulrich-rieke/cpp/ch-1.cpp75
-rwxr-xr-xchallenge-346/ulrich-rieke/haskell/ch-1.hs25
-rwxr-xr-xchallenge-346/ulrich-rieke/haskell/ch-2.hs86
-rwxr-xr-xchallenge-346/ulrich-rieke/perl/ch-1.pl60
-rwxr-xr-xchallenge-346/ulrich-rieke/python/ch-1.py38
-rwxr-xr-xchallenge-346/ulrich-rieke/raku/ch-1.raku53
-rwxr-xr-xchallenge-346/ulrich-rieke/rust/ch-1.rs59
-rw-r--r--stats/pwc-current.json21
-rw-r--r--stats/pwc-language-breakdown-2019.json2
-rw-r--r--stats/pwc-language-breakdown-2020.json2
-rw-r--r--stats/pwc-language-breakdown-2021.json2
-rw-r--r--stats/pwc-language-breakdown-2022.json2
-rw-r--r--stats/pwc-language-breakdown-2023.json2
-rw-r--r--stats/pwc-language-breakdown-2024.json2
-rw-r--r--stats/pwc-language-breakdown-2025.json8
-rw-r--r--stats/pwc-language-breakdown-summary.json6
-rw-r--r--stats/pwc-leaders.json8
-rw-r--r--stats/pwc-summary-1-30.json2
-rw-r--r--stats/pwc-summary-121-150.json2
-rw-r--r--stats/pwc-summary-151-180.json2
-rw-r--r--stats/pwc-summary-181-210.json2
-rw-r--r--stats/pwc-summary-211-240.json2
-rw-r--r--stats/pwc-summary-241-270.json2
-rw-r--r--stats/pwc-summary-271-300.json2
-rw-r--r--stats/pwc-summary-301-330.json6
-rw-r--r--stats/pwc-summary-31-60.json2
-rw-r--r--stats/pwc-summary-61-90.json2
-rw-r--r--stats/pwc-summary-91-120.json2
-rw-r--r--stats/pwc-summary.json8
-rw-r--r--stats/pwc-yearly-language-summary.json8
30 files changed, 454 insertions, 39 deletions
diff --git a/challenge-346/ulrich-rieke/cpp/ch-1.cpp b/challenge-346/ulrich-rieke/cpp/ch-1.cpp
new file mode 100755
index 0000000000..82a661efeb
--- /dev/null
+++ b/challenge-346/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,75 @@
+#include <vector>
+#include <iostream>
+#include <algorithm>
+#include <iterator>
+#include <numeric>
+#include <string>
+
+int findSuitableLength( int start , const std::string & parens ) {
+ int len = static_cast<int>(parens.length( ) ) ;
+ std::vector<int> countBalances ;
+ int balance = 1 ;
+ countBalances.push_back( balance ) ;
+ start++ ;
+ while ( start < len ) {
+ if ( parens.substr( start , 1 ) == "(" ) {
+ balance++ ;
+ }
+ else {
+ balance-- ;
+ if ( balance < 0 ) {
+ break ;
+ }
+ }
+ countBalances.push_back( balance ) ;
+ start++ ;
+ }
+ int last = countBalances.back( ) ;
+ if ( last == 0 )
+ return static_cast<int>( countBalances.size( ) ) ;
+ else {
+ auto howmany = std::count( countBalances.begin( ) ,
+ countBalances.end( ) , 0 ) ;
+ if ( howmany == 0 ) {
+ return 0 ;
+ }
+ else {
+ if ( howmany == 1 ) {
+ auto found = std::find( countBalances.begin( ) ,
+ countBalances.end( ) , 0 ) ;
+ return static_cast<int>( std::distance( countBalances.begin( ) ,
+ found )) + 1 ;
+ }
+ else {
+ auto myStart = std::prev( countBalances.end( ) ) ;
+ while ( *myStart != 0 ) {
+ --myStart ;
+ }
+ return static_cast<int>( std::distance( countBalances.begin( ) ,
+ myStart )) + 1;
+ }
+ }
+ }
+}
+
+int main( ) {
+ std::cout << "Enter a string consisting of parentheses only!\n" ;
+ std::string parens ;
+ std::cin >> parens ;
+ auto found = std::find( parens.begin( ) , parens.end( ) , '(' ) ;
+ std::vector<int> lengths ;
+ while ( found != parens.end( ) ) {
+ int l = findSuitableLength( static_cast<int>( std::distance(
+ parens.begin() , found )) , parens ) ;
+ lengths.push_back( l ) ;
+ found++ ;
+ if ( found != parens.end( ) ) {
+ found = std::find( found , parens.end( ) , '(' ) ;
+ }
+ }
+ std::cout << *std::max_element( lengths.begin( ) , lengths.end( ) )
+ << '\n' ;
+}
+
+
+
diff --git a/challenge-346/ulrich-rieke/haskell/ch-1.hs b/challenge-346/ulrich-rieke/haskell/ch-1.hs
new file mode 100755
index 0000000000..869d1ab7d0
--- /dev/null
+++ b/challenge-346/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,25 @@
+module Challenge346
+ where
+import Data.List ( findIndices , sortOn)
+
+findValidLength :: String -> Int
+findValidLength parens =
+ let l = length parens
+ bracketcount = map (\i -> (i , (length $ findIndices ( == '(' )
+ $ take i parens , length $ findIndices ( == ')' ) $ take i
+ parens ))) [2..l]
+ selected = filter (\p -> (fst $ snd p) - ( snd $ snd p ) == 0 )
+ bracketcount
+ in if null selected then 0 else fst $ last $ sortOn fst selected
+
+solution :: String -> Int
+solution str = maximum $ map (\i -> findValidLength $ drop i str ) $ filter (\i ->
+ i < l - 1 ) $ findIndices ( == '(' ) str
+ where
+ l = length str
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a word consisting of parentheses only!"
+ parWord <- getLine
+ print $ solution parWord
diff --git a/challenge-346/ulrich-rieke/haskell/ch-2.hs b/challenge-346/ulrich-rieke/haskell/ch-2.hs
new file mode 100755
index 0000000000..190d3e997f
--- /dev/null
+++ b/challenge-346/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,86 @@
+module Challenge346_2
+ where
+import Data.List ( findIndex , findIndices , (!!))
+import qualified Data.Set as S
+import Data.Char ( isDigit )
+import Data.List.Split ( split , divvy , splitPlaces , oneOf )
+
+combinations :: Int -> [a] -> [[a]]
+combinations 0 _ = [[]]
+combinations n xs = [ xs !! i : x | i <- [0..(length xs ) - 1 ] ,
+ x <- combinations (n - 1 ) ( drop ( i + 1 ) xs ) ]
+
+eliminateMultiply :: String -> String
+eliminateMultiply str = until ( null . findIndices (== '*' )) step str
+ where
+ step :: String -> String
+ step aString = if null $ findIndices (== '*') aString then aString else
+ firstPart ++ show theProduct ++ secondPart
+ where
+ pos :: Int
+ pos = head $ findIndices (== '*') aString
+ firstOperand :: String
+ firstOperand = reverse $ takeWhile isDigit $ reverse $ take pos aString
+ secondOperand :: String
+ secondOperand = takeWhile isDigit $ drop ( pos + 1 ) aString
+ theProduct :: Int
+ theProduct = (read firstOperand :: Int) * ( read secondOperand :: Int)
+ firstPart :: String
+ firstPart = take ( pos - length firstOperand ) aString
+ secondPart :: String
+ secondPart = drop ( pos + 1 + length secondOperand ) aString
+
+createSeparationPoints :: String -> [[Int]]
+createSeparationPoints str =
+ let l = length str
+ numbers = concat $ map (\i -> take ( div l i ) $ repeat i ) [1..l - 1]
+ allCombis = concat $ map (\i -> combinations i numbers ) [1..l]
+ selected = filter ( (l ==) . sum ) $ S.toList $ S.fromList allCombis
+ allReversed = map reverse selected
+ in S.toList $ S.fromList ( selected ++ allReversed )
+
+separateString :: [Int] -> String -> [String]
+separateString list str = splitPlaces list str
+
+findOperatorCombinations :: Int -> [String]
+findOperatorCombinations splitNumber =
+ let allLetters = foldl1 ( ++ ) $ map (\c -> take splitNumber $ repeat c) "+-*"
+ allCombis = combinations splitNumber allLetters
+ allReversed = map reverse allCombis
+ in S.toList $ S.fromList ( allCombis ++ allReversed )
+
+insertOperators :: [String] -> String -> String
+insertOperators stringlist operators =
+ let zipped = zip stringlist operators
+ in (foldl1 ( ++ ) $ map (\p -> fst p ++ [snd p] ) zipped) ++ last stringlist
+
+combineWithOperators :: [String] -> [String]
+combineWithOperators stringlist =
+ let opCombis = findOperatorCombinations ( length stringlist - 1 )
+ in map (\str -> insertOperators stringlist str ) opCombis
+
+findAllStringCombinations :: String -> [String]
+findAllStringCombinations str =
+ let sepPoints = createSeparationPoints str
+ separatedStrings = map (\subli -> separateString subli str ) sepPoints
+ in concat $ map combineWithOperators separatedStrings
+
+newEvaluate :: String -> String
+newEvaluate str = head $ until ( (== 1 ) . length ) step $ split ( oneOf "+-" ) $
+ eliminateMultiply str
+ where
+ step :: [String] -> [String]
+ step aList = [if aList !! 1 == "+" then show (firstnum + secondnum ) else show (firstnum -
+ secondnum )] ++ drop 3 aList
+ where
+ firstnum = read $ aList !! 0
+ secondnum = read $ aList !! 2
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a string consisting of digits only!"
+ numberline <- getLine
+ putStrLn "Enter a target string!"
+ target <- getLine
+ if numberline == target then print [numberline ++ "+0" , numberline ++ "-0"] else
+ print $ filter ( (== target) . newEvaluate ) $ findAllStringCombinations numberline
diff --git a/challenge-346/ulrich-rieke/perl/ch-1.pl b/challenge-346/ulrich-rieke/perl/ch-1.pl
new file mode 100755
index 0000000000..ae755cbd29
--- /dev/null
+++ b/challenge-346/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,60 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( max ) ;
+
+sub findLength {
+ my $word = shift ;
+ my $current = shift ;
+ my @balances ;
+ my $balance = 1 ;
+ push( @balances , $balance ) ;
+ my $len = length $word ;
+ $current++ ;
+ while ( $current < $len ) {
+ if ( substr( $word , $current , 1 ) eq "(" ) {
+ $balance++ ;
+ }
+ else {
+ $balance-- ;
+ }
+ if ( $balance < 0 ) {
+ last ;
+ }
+ push( @balances , $balance ) ;
+ $current++ ;
+ }
+ my $howmany = scalar( grep { $_ == 0 } @balances ) ;
+ my $result ;
+ if ( $howmany == 0 ) {
+ $result = 0 ;
+ }
+ elsif ( $howmany == 1 ) {
+ my $pos = 0 ;
+ while ( $balances[$pos] != 0 ) {
+ $pos++ ;
+ }
+ $result = $pos + 1 ;
+ }
+ else {
+ my $pos = scalar( @balances ) - 1 ;
+ while ( $balances[$pos] != 0 ) {
+ $pos-- ;
+ }
+ $result = $pos + 1 ;
+ }
+ return $result ;
+}
+
+say "Enter a string consisting of parentheses only!" ;
+my $word = <STDIN> ;
+chomp $word ;
+my $len = length $word ;
+my @lengths ;
+for my $pos (0..$len - 2) {
+ if ( substr( $word , $pos , 1 ) eq "(" ) {
+ push( @lengths , findLength( $word , $pos )) ;
+ }
+}
+say max( @lengths ) ;
diff --git a/challenge-346/ulrich-rieke/python/ch-1.py b/challenge-346/ulrich-rieke/python/ch-1.py
new file mode 100755
index 0000000000..7cea0dd22c
--- /dev/null
+++ b/challenge-346/ulrich-rieke/python/ch-1.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+
+def findLength( word , start):
+ balances = []
+ balance = 1
+ length = len( word )
+ balances.append( balance )
+ start += 1
+ while start < length:
+ letter = word[start]
+ if letter == '(':
+ balance += 1
+ else:
+ balance -= 1
+ if balance < 0:
+ break
+ balances.append( balance )
+ start += 1
+ howmany = balances.count( 0 )
+ result = 0
+ if howmany == 0:
+ result = 0
+ elif howmany == 1:
+ result = balances.index( 0 ) + 1
+ else:
+ cur = len(balances) - 1
+ while balances[cur] != 0:
+ cur -= 1
+ result = cur + 1
+ return result
+
+string = input( "Enter a string consisting of parentheses only!\n" )
+length = len( string )
+lengths = []
+for pos in range(0 , length - 1):
+ if string[pos] == '(':
+ lengths.append( findLength( string , pos ))
+print( max( lengths ) )
diff --git a/challenge-346/ulrich-rieke/raku/ch-1.raku b/challenge-346/ulrich-rieke/raku/ch-1.raku
new file mode 100755
index 0000000000..30ec3e84fd
--- /dev/null
+++ b/challenge-346/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,53 @@
+use v6 ;
+
+sub findLength( $word , $start is copy) {
+ my @balances ;
+ my $balance = 1 ;
+ @balances.push( $balance ) ;
+ my $len = $word.chars ;
+ $start++ ;
+ while ( $start < $len ) {
+ if ( $word.substr( $start , 1 ) eq "(" ) {
+ $balance++ ;
+ }
+ else {
+ $balance-- ;
+ }
+ if ( $balance < 0 ) {
+ last ;
+ }
+ @balances.push( $balance ) ;
+ $start++ ;
+ }
+ my $howmany = @balances.grep( {$_ == 0} ).elems ;
+ my $result ;
+ if ( $howmany == 0 ) {
+ $result = 0 ;
+ }
+ elsif ( $howmany == 1 ) {
+ my $pos = 0 ;
+ while ( @balances[$pos] != 0 ) {
+ $pos++ ;
+ }
+ $result = $pos + 1 ;
+ }
+ else {
+ my $pos = $len - 1 ;
+ while ( @balances[$pos] != 0 ) {
+ $pos-- ;
+ }
+ $result = $pos + 1 ;
+ }
+ return $result ;
+}
+
+say "Enter a string consisting of parentheses only!" ;
+my $word = $*IN.get ;
+my $len = $word.chars ;
+my @lengths ;
+for (0..$len - 1) -> $pos {
+ if ( $word.substr( $pos , 1 ) eq "(" ) {
+ @lengths.push(findLength( $word , $pos ) ) ;
+ }
+}
+say @lengths.max ;
diff --git a/challenge-346/ulrich-rieke/rust/ch-1.rs b/challenge-346/ulrich-rieke/rust/ch-1.rs
new file mode 100755
index 0000000000..bbe01c088c
--- /dev/null
+++ b/challenge-346/ulrich-rieke/rust/ch-1.rs
@@ -0,0 +1,59 @@
+use std::io ;
+
+fn find_length( input : &str , mut current : usize ) -> usize {
+ let mut balances : Vec<i32> = Vec::new( ) ;
+ let mut balance : i32 = 1 ;
+ balances.push( balance ) ;
+ let len : usize = input.chars( ).count( ) ;
+ current += 1 ;
+ while current < len {
+ let letter : char = input.chars( ).nth( current ).unwrap( ) ;
+ if letter == '(' {
+ balance += 1 ;
+ }
+ else {
+ balance -= 1 ;
+ }
+ if balance < 0 {
+ break ;
+ }
+ balances.push( balance ) ;
+ current += 1 ;
+ }
+ let howmany : usize = balances.iter( ).filter( |&n| *n == 0 ).count( ) ;
+ let result : usize ;
+ if howmany == 0 {
+ result = 0 ;
+ }
+ else {
+ if howmany == 1 {
+ let pos : usize = balances.iter( ).position( |n| *n == 0 ).unwrap( ) ;
+ result = pos + 1 ;
+ }
+ else {
+ let mut cur = balances.len( ) - 1 ;
+ while balances[cur] != 0 {
+ cur -= 1 ;
+ }
+ result = cur + 1 ;
+ }
+ }
+ result
+}
+
+fn main() {
+ println!("Enter a string consisting of parentheses only!");
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let parens : &str = inline.trim( ) ;
+ let mut lengths : Vec<usize> = Vec::new( ) ;
+ let len : usize = parens.chars().count( ) ;
+ for pos in 0..len - 1 {
+ let letter : char = parens.chars( ).nth( pos ).unwrap( ) ;
+ if letter == '(' {
+ let result = find_length( parens , pos ) ;
+ lengths.push( result ) ;
+ }
+ }
+ println!("{}" , lengths.into_iter().max( ).unwrap( ) ) ;
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 0452f33c06..320210861e 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -130,6 +130,20 @@
"data" : [
[
"Perl",
+ 1
+ ],
+ [
+ "Raku",
+ 1
+ ]
+ ],
+ "id" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke"
+ },
+ {
+ "data" : [
+ [
+ "Perl",
2
],
[
@@ -214,6 +228,11 @@
"y" : 4
},
{
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "y" : 2
+ },
+ {
"drilldown" : "W. Luis Mochan",
"name" : "W. Luis Mochan",
"y" : 3
@@ -223,7 +242,7 @@
}
],
"subtitle" : {
- "text" : "[Champions: 12] Last updated at 2025-11-06 00:23:23 GMT"
+ "text" : "[Champions: 13] Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "The Weekly Challenge - 346"
diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json
index 056044b90e..66ec04da24 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-06 00:23:23 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2020.json b/stats/pwc-language-breakdown-2020.json
index 07006a2094..542bfc92d3 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-06 00:23:23 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2021.json b/stats/pwc-language-breakdown-2021.json
index f9ed41525a..a106ee9d93 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-06 00:23:23 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2022.json b/stats/pwc-language-breakdown-2022.json
index 92f17a6871..19bb375b4b 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-06 00:23:23 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2023.json b/stats/pwc-language-breakdown-2023.json
index 4586125d37..1f59423fde 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-06 00:23:23 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2024.json b/stats/pwc-language-breakdown-2024.json
index dd7cd04b72..cd9e4a68c3 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-06 00:23:23 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2025.json b/stats/pwc-language-breakdown-2025.json
index 6f4c7f862f..287771c631 100644
--- a/stats/pwc-language-breakdown-2025.json
+++ b/stats/pwc-language-breakdown-2025.json
@@ -8,11 +8,11 @@
"data" : [
[
"Perl",
- 19
+ 20
],
[
"Raku",
- 4
+ 5
],
[
"Blog",
@@ -817,7 +817,7 @@
{
"drilldown" : "346",
"name" : "346",
- "y" : 27
+ "y" : 29
},
{
"drilldown" : "345",
@@ -1039,7 +1039,7 @@
}
],
"subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-06 00:23:23 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 5ad08517d0..a79be849df 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -10,11 +10,11 @@
"data" : [
[
"Perl",
- 17814
+ 17815
],
[
"Raku",
- 9870
+ 9871
],
[
"Blog",
@@ -37,7 +37,7 @@
}
],
"subtitle" : {
- "text" : "Last updated at 2025-11-06 00:23:23 GMT"
+ "text" : "Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "The Weekly Challenge Contributions [2019 - 2025]"
diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json
index 5c6ef78596..35d7052279 100644
--- a/stats/pwc-leaders.json
+++ b/stats/pwc-leaders.json
@@ -112,11 +112,11 @@
"data" : [
[
"Perl",
- 528
+ 529
],
[
"Raku",
- 536
+ 537
]
],
"id" : "Ulrich Rieke",
@@ -827,7 +827,7 @@
{
"drilldown" : "Ulrich Rieke",
"name" : "7: Ulrich Rieke",
- "y" : 2128
+ "y" : 2132
},
{
"drilldown" : "Flavio Poletti",
@@ -1049,7 +1049,7 @@
}
],
"subtitle" : {
- "text" : "Click the columns to drilldown the score breakdown. Last updated at 2025-11-06 00:23:23 GMT"
+ "text" : "Click the columns to drilldown the score breakdown. Last updated at 2025-11-06 11:22:39 GMT"
},
"title" : {
"text" : "Team Leaders (TOP 50)"
diff --git a/stats/pwc-summary-1-30.json b/stats/pwc-summary-1-30.json
index bad6db98e0..4792afc38a 100644
--- a/stats/pwc-summary-1-30.json
+++ b/stats/pwc-summary-1-30.json
@@ -115,7 +115,7 @@
}
],
"subtitle" : {
- "text" : "[Champions: 30] Last updated at 2025-11-06 00:23:23 GMT"
+ "text" : "[Champions: 30] Last updated at 2025-11-06 11:22:39 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 82683d8cbf..8420e118de 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-06 00:23:23 GMT"
+ "text" : "[Champions: 30] Last updated at 2025-11-06 11:22:39 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 c5266420cf..e0c739befb 100644
--- a/stats/pwc-summary-151-180.json
+++ b/stats/pwc-summary-151-180.json
@@ -115,7 +115,7 @@
}
],
"subtitle" : {
- "text" : "[Champions: 30] Last updated at 2025-11-06 00:23:23 GMT"
+ "text" : "[Champions: 30] Last updated at 2025-11-06 11:22:39 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 2b8d2a71ac..cd2bb33baf 100644
--- a/stats/pwc-summary-181-210.json
+++ b/stats/pwc-summary-181-210.json
@@ -115,7 +115,7 @@
}
],
"subtitle" : {
- "text" : "[Champions: 30] Last updated at 2025-11-06 00:23:23 GMT"
+ "text" : "[Champions: 30] Last updated at 2025-11-06 11:22:39 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 28b8f192e9..5aa172a9e8 100644
--- a/stats/pwc-summary-211-240.json
+++ b/stats/pwc-summary-211-240.json
@@ -115,7 +115,7 @@
}
],
"subtitle" : {
- "text" : "[Champions: 30] Last updated at 2025-11-06 00:23:23 GMT"
+ "text" : "[Champions: 30] Last updated at 2025-11-06 11:22:39 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 717ea2c87a..94d7dd0ac4 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-06 00:23:23 GMT"
+ "text" : "[Champions: 30] Last updated at 2025-11-06 11:22:39 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 b6bedd0ee0..3ed91c2e2e 100644
--- a/stats/pwc-summary-271-300.json
+++ b/stats/pwc-summary-271-300.json
@@ -115,7 +115,7 @@
}
],
"subtitle" : {
- "text" : "[Champions: 30] Last updated at 2025-11-06 00:23:23 GMT"
+ "text" : "[Champions: 30] Last updated at 2025-11-06 11:22:39 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 c35499c042..a065500a99 100644
--- a/stats/pwc-summary-301-330.json
+++ b/stats/pwc-