diff options
| author | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2025-11-06 11:23:04 +0000 |
|---|---|---|
| committer | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2025-11-06 11:23:04 +0000 |
| commit | d6d9df839741d01f80758e2acc9e6cc83ad5336a (patch) | |
| tree | 409c5f934fbc2a708aeda6671a8edc960eaea110 | |
| parent | 4ca41f3aebdcb4020b0e554e5e68339cb9593ce4 (diff) | |
| download | perlweeklychallenge-club-d6d9df839741d01f80758e2acc9e6cc83ad5336a.tar.gz perlweeklychallenge-club-d6d9df839741d01f80758e2acc9e6cc83ad5336a.tar.bz2 perlweeklychallenge-club-d6d9df839741d01f80758e2acc9e6cc83ad5336a.zip | |
- Added solutions by Ulrich Rieke.
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- |
