diff options
| author | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2025-08-25 21:13:28 +0100 |
|---|---|---|
| committer | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2025-08-25 21:13:28 +0100 |
| commit | cfe111699674dcbdae6a9172888ec4a0cf5ca4c1 (patch) | |
| tree | e2311b3c2ed8dd7ba2b4dc8f5c7ccb8c3e8430d3 | |
| parent | dc4b31ab417aabe3c4cf880f22f514a7bed1ac2c (diff) | |
| download | perlweeklychallenge-club-cfe111699674dcbdae6a9172888ec4a0cf5ca4c1.tar.gz perlweeklychallenge-club-cfe111699674dcbdae6a9172888ec4a0cf5ca4c1.tar.bz2 perlweeklychallenge-club-cfe111699674dcbdae6a9172888ec4a0cf5ca4c1.zip | |
- Added solutions by Ali Moradi.
- Added solutions by Richard Park.
- Added solutions by David Ferrone.
- Added solutions by E. Choroba.
- Added solutions by Robbie Hatley.
- Added solutions by Peter Campbell Smith.
- Added solutions by Niels van Dijke.
- Added solutions by Kjetil Skotheim.
- Added solutions by Ulrich Rieke.
35 files changed, 568 insertions, 78 deletions
diff --git a/challenge-336/perlboy1967/perl/ch1.pl b/challenge-336/perlboy1967/perl/ch-1.pl index 1a6c36ec02..1a6c36ec02 100755 --- a/challenge-336/perlboy1967/perl/ch1.pl +++ b/challenge-336/perlboy1967/perl/ch-1.pl diff --git a/challenge-336/perlboy1967/perl/ch2.pl b/challenge-336/perlboy1967/perl/ch-2.pl index d2af12fb92..d2af12fb92 100755 --- a/challenge-336/perlboy1967/perl/ch2.pl +++ b/challenge-336/perlboy1967/perl/ch-2.pl diff --git a/challenge-336/ulrich-rieke/cpp/ch-1.cpp b/challenge-336/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..4dcf324053 --- /dev/null +++ b/challenge-336/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,46 @@ +#include <iostream>
+#include <string>
+#include <sstream>
+#include <vector>
+#include <utility>
+#include <algorithm>
+#include <set>
+
+std::vector<std::string> split( const std::string & text , char delimiter ) {
+ std::vector<std::string> 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 numbers separated by whitespace!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ auto tokens { split( line, ' ' ) } ;
+ std::string numbers ;
+ for ( auto s : tokens )
+ numbers.push_back( std::stoi( s ) ) ;
+ std::set<int> uniques { numbers.begin( ) , numbers.end( ) } ;
+ std::vector<std::pair<int , int>> frequencies ;
+ for ( auto it = uniques.begin( ) ; it != uniques.end( ) ; ++it ) {
+ frequencies.push_back( std::make_pair( *it , std::count( numbers.begin( ) ,
+ numbers.end( ) , *it ))) ;
+ }
+ bool result = false ;
+ if ( frequencies.size( ) == 1 ) {
+ result = frequencies[0].second > 1 ;
+ }
+ else {
+ std::sort( frequencies.begin( ) , frequencies.end( ) , []( const auto &
+ aPair , const auto & bPair ) { return aPair.second < bPair.second ; }
+ ) ;
+ int mini = frequencies[0].second ;
+ result = mini > 1 && std::all_of( frequencies.begin( ) + 1 , frequencies.end( ),
+ [mini]( const auto & p ) { return p.second % mini == 0 ; } ) ;
+ }
+ std::cout << std::boolalpha << result << '\n' ;
+ return 0 ;
+}
diff --git a/challenge-336/ulrich-rieke/cpp/ch-2.cpp b/challenge-336/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..5304fa2916 --- /dev/null +++ b/challenge-336/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,50 @@ +#include <vector>
+#include <string>
+#include <sstream>
+#include <regex>
+#include <iostream>
+#include <numeric>
+#include <algorithm>
+
+std::vector<std::string> split( const std::string & text , char delimiter ) {
+ std::vector<std::string> 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 numbers and D , C or + separated by whitespace!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ auto tokens { split( line , ' ' ) } ;
+ std::vector<int> numbers ;
+ std::string numpattern {"(\\-)*\\d+"} ;
+ std::regex nu { numpattern } ;
+ auto until = std::find_if( tokens.begin( ) , tokens.end( ) , [nu]( const auto w )
+ { return ! std::regex_match( w.begin( ) , w.end( ) , nu ) ; } ) ;
+ for ( auto it = tokens.begin( ) ; it != until ; ++it )
+ numbers.push_back( std::stoi( *it ) ) ;
+ for ( auto it = until ; it != tokens.end( ) ; ++it ) {
+ if ( ! std::regex_match( *it , nu ) ) { // no number !
+ if ( *it == "C" ) {
+ numbers.pop_back( ) ;
+ }
+ if ( *it == "D" ) {
+ int last = numbers.back( ) ;
+ numbers.push_back( last * 2 ) ;
+ }
+ if ( *it == "+" ) {
+ int l = numbers.size( ) ;
+ numbers.push_back( numbers[l - 2] + numbers[l - 1] ) ;
+ }
+ }
+ else { // it's a number !
+ numbers.push_back( std::stoi( *it ) ) ;
+ }
+ }
+ std::cout << std::accumulate( numbers.begin( ) , numbers.end( ) , 0 ) << '\n' ;
+ return 0 ;
+}
diff --git a/challenge-336/ulrich-rieke/haskell/ch-1.hs b/challenge-336/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..c31c224de3 --- /dev/null +++ b/challenge-336/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,22 @@ +module Challenge336
+ where
+import Data.List( group , findIndices, sortOn )
+import qualified Data.Set as S
+
+makePairs :: [Int] -> [(Int , Int)]
+makePairs list = map (\i -> ( i , length $ findIndices ( == i ) list )) $ S.toList
+ $ S.fromList list
+
+checkCondition :: [(Int , Int)] -> Bool
+checkCondition frequencies =
+ let sorted = sortOn snd frequencies
+ mini = snd $ head sorted
+ l = length sorted
+ in if l == 1 then mini > 1 else (all (\p -> snd p `mod` mini == 0 ) $ drop 1
+ sorted) && ( mini > 1 )
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some integers separated by blanks!"
+ numberline <- getLine
+ print $ checkCondition $ makePairs $ map read $ words numberline
diff --git a/challenge-336/ulrich-rieke/haskell/ch-2.hs b/challenge-336/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..ab57272255 --- /dev/null +++ b/challenge-336/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,31 @@ +module Challenge336_2
+ where
+import Data.List ( (!!) )
+import Data.Char ( isDigit )
+
+convert :: String -> Int
+convert str = if head str == '-' then (read ( drop 1 str )) * (-1) else read str
+
+addNumber :: [Int] -> String -> [Int]
+addNumber list str
+ |str == "C" = take ( l - 1 ) list
+ |str == "D" = list ++ [ (last list) * 2 ]
+ |str == "+" = list ++ [ (list !! ( l - 2 )) + list !! ( l - 1 ) ]
+ |otherwise = list ++ [ convert str ]
+ where
+ l :: Int
+ l = length list
+
+solution :: String -> Int
+solution input =
+ let theWords = words input
+ (firstPart , secondPart ) = span (\s -> isDigit ( head s ) || head s ==
+ '-' ) theWords
+ startnumbers = map convert firstPart
+ in sum $ foldl addNumber startnumbers secondPart
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some integers , C , D or + separated by blanks!"
+ inputline <- getLine
+ print $ solution inputline
diff --git a/challenge-336/ulrich-rieke/perl/ch-1.pl b/challenge-336/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..dcb6ce2a75 --- /dev/null +++ b/challenge-336/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( all ) ;
+
+say "Enter some integers separated by blanks!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @numbers = split( /\s+/ , $line ) ;
+my %frequencies ;
+my @pairs ;
+map { $frequencies{$_}++ } @numbers ;
+for my $k ( keys %frequencies ) {
+ push( @pairs , [$k , $frequencies{$k} ] ) ;
+}
+my $result = 0 ;
+if ( scalar( @pairs ) == 1 ) {
+ if ( $pairs[0]->[1] > 1 ) {
+ $result = 1 ;
+ }
+}
+else {
+ my @sorted = sort { $a->[1] <=> $b->[1] } @pairs ;
+ my $mini = $sorted[0]->[1] ;
+ if ( $mini > 1 && all { $_->[1] % $mini == 0 } @sorted[1..$#sorted] ) {
+ $result = 1 ;
+ }
+}
+if ( $result == 0 ) {
+ say "false" ;
+}
+else {
+ say "true" ;
+}
diff --git a/challenge-336/ulrich-rieke/perl/ch-2.pl b/challenge-336/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..7242f311da --- /dev/null +++ b/challenge-336/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( sum ) ;
+
+say "Enter some numbers and the letters C , D or + separated by spaces!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @parts = split( /\s+/ , $line ) ;
+my @numbers ;
+my $len = scalar( @parts ) ;
+my $pos = 0 ;
+while ( $pos < $len && $parts[$pos] =~ /\d+/ ) {
+ push( @numbers , $parts[$pos] ) ;
+ $pos++ ;
+}
+for my $p ($pos..$len - 1) {
+ if ( $parts[$p] =~ /C|D|\+/ ) {
+ if ( $parts[$p] eq 'C' ) {
+ pop( @numbers ) ;
+ }
+ if ( $parts[$p] eq 'D' ) {
+ push( @numbers , $numbers[-1] * 2 ) ;
+ }
+ if ( $parts[$p] eq '+' ) {
+ my $l = scalar( @numbers ) ;
+ push( @numbers , $numbers[$l - 2 ] + $numbers[$l - 1] ) ;
+ }
+ }
+ else { #it must be a number !
+ push( @numbers , $parts[$p] ) ;
+ }
+}
+say sum( @numbers ) ;
diff --git a/challenge-336/ulrich-rieke/raku/ch-1.raku b/challenge-336/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..3512ffbc1f --- /dev/null +++ b/challenge-336/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,26 @@ +use v6 ;
+
+say "Enter some integers separated by blanks!" ;
+my $line = $*IN.get ;
+my @numbers = $line.words.map( {.Int } ) ;
+my %frequencies ;
+for @numbers -> $k {
+ %frequencies{$k}++ ;
+}
+my $result ;
+if %frequencies.keys.elems == 1 {
+ my $num = %frequencies.keys[0] ;
+ $result = $num > 1 ;
+}
+else {
+ my @pairs ;
+ for %frequencies.keys -> $k {
+ @pairs.push( [$k , %frequencies{$k}] ) ;
+ }
+ my @sorted = @pairs.sort( {$^a[1] <=> $^b[1] } ) ;
+ my $mini = @sorted[0][1] ;
+ $result = $mini > 1 && @sorted[1..@sorted.elems - 1].grep( {$_[1] %% $mini} )
+ .elems == @sorted.elems - 1 ;
+}
+say $result ;
+
diff --git a/challenge-336/ulrich-rieke/raku/ch-2.raku b/challenge-336/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..2d2eff22b5 --- /dev/null +++ b/challenge-336/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,30 @@ +use v6 ;
+
+say "Enter some integers and the character + , C or D separated by whitespace!" ;
+my $line = $*IN.get ;
+my @parts = $line.words ;
+my @numbers ;
+my $len = @parts.elems ;
+my $pos = 0 ;
+while ( $pos < $len && @parts[$pos] ~~ /\d+/ ) {
+ @numbers.push( +(@parts[$pos]) ) ;
+ $pos++ ;
+}
+for ($pos..$len - 1 ) -> $i {
+ if ( @parts[ $i ] ~~ /'C' | 'D' | '+' / ) {
+ if ( @parts[ $i ] eq 'C' ) {
+ @numbers.pop( ) ;
+ }
+ if ( @parts[ $i ] eq 'D' ) {
+ @numbers.push( @numbers[*-1] * 2 ) ;
+ }
+ if ( @parts[ $i ] eq '+' ) {
+ my $l = @numbers.elems ;
+ @numbers.push( @numbers[$l - 2 ] + @numbers[ $l - 1 ] ) ;
+ }
+ }
+ else { #we must be at a number
+ @numbers.push( +@parts[$i] ) ;
+ }
+}
+say [+] @numbers ;
diff --git a/challenge-336/ulrich-rieke/rust/ch-1.rs b/challenge-336/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..902a91f315 --- /dev/null +++ b/challenge-336/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,30 @@ +use std::io ; +use std::collections::HashSet ; + +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<i32> = inline.trim( ).split_whitespace( ).map( |s| + s.parse::<i32>( ).unwrap( )).collect( ) ; + let mut uniques : HashSet<i32> = HashSet::new( ) ; + for n in &numbers { + uniques.insert(*n ) ; + } + let mut numfrequencies : Vec<(i32, usize)> = Vec::new( ) ; + for n in &uniques { + numfrequencies.push( (*n , numbers.iter( ).filter( |&d| *d == *n ).count( )) ) ; + } + let result : bool ; + if uniques.len( ) == 1 { + result = numbers.len( ) > 1 ; + } + else { + let freq_slice = &mut numfrequencies[..] ; + freq_slice.sort_by( |a , b| a.1.cmp( &b.1 ) ) ; + let mini : usize = freq_slice[0].1 ; + result = mini > 1 && freq_slice.into_iter( ).skip( 1 ).map( |p| p.1 ) + .all( |n| n % mini == 0 ) ; + } + println!("{}" , result ) ; +} diff --git a/challenge-336/ulrich-rieke/rust/ch-2.rs b/challenge-336/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..53db5bfeb8 --- /dev/null +++ b/challenge-336/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,49 @@ +use std::io ; + +fn main() { + println!("Enter some integers or letters D , C or + separated by blanks!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entrystrings : Vec<&str> = inline.trim( ).split_whitespace( ).collect( ); + let mut numbers : Vec<i32> = Vec::new( ) ; + if let Some( pos ) = entrystrings.iter( ).position( |s| ! s.parse::<i32>( ). + is_ok( ) ) { + if pos < entrystrings.len( ) { + entrystrings.iter( ).take( pos ).map( |s| s.parse::<i32>( ).unwrap( )). + for_each( |n| numbers.push( n ) ) ; + let len : usize = entrystrings.len( ) ; + for p in pos..len { + let value : &str = entrystrings[p] ; + if value == "C" { + numbers.remove( numbers.len( ) - 1 ) ; + } + if value == "D" { + let l = numbers.len( ) ; + numbers.push( numbers[l - 1] * 2 ) ; + } + if value == "+" { + let l = numbers.len( ) ; + numbers.push( numbers[l - 2] + numbers[l - 1] ) ; + } + if value.chars( ).count( ) >= 2 { + let num : i32 = value.parse::<i32>( ).unwrap( ) ; + numbers.push( num ) ; + } + if value.chars( ).count( ) == 1 && value.chars( ).nth( 0 ).unwrap( ). + is_ascii_digit( ) { + let num : i32 = value.parse::<i32>( ).unwrap( ) ; + numbers.push( num ) ; + } + } + } + else { + } + println!("{}" , numbers.into_iter( ).sum::<i32>( ) ) ; + } + else { + for s in entrystrings { + numbers.push( s.parse::<i32>( ).unwrap( )) ; + } + println!("{}" , numbers.into_iter( ).sum::<i32>( ) ) ; + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index ed86e52244..7157cfe9d7 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -7,12 +7,108 @@ { "data" : [ [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Ali Moradi", + "name" : "Ali Moradi" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "David Ferrone", + "name" : "David Ferrone" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim" + }, + { + "data" : [ + [ "Raku", 2 ] ], "id" : "Mark Anderson", "name" : "Mark Anderson" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Robbie Hatley", + "name" : "Robbie Hatley" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke" } ] }, @@ -33,16 +129,56 @@ "colorByPoint" : 1, "data" : [ { + "drilldown" : "Ali Moradi", + "name" : "Ali Moradi", + "y" : 3 + }, + { + "drilldown" : "David Ferrone", + "name" : "David Ferrone", + "y" : 2 + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim", + "y" : 2 + }, + { "drilldown" : "Mark Anderson", "name" : "Mark Anderson", "y" : 2 + }, + { + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", + "y" : 2 + }, + { + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", + "y" : 3 + }, + { + "drilldown" : "Robbie Hatley", + "name" : "Robbie Hatley", + "y" : 3 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 } ], "name" : "The Weekly Challenge - 336" } ], "subtitle" : { - "text" : "[Champions: 1] Last updated at 2025-08-25 09:42:02 GMT" + "text" : "[Champions: 9] Last updated at 2025-08-25 20:11:59 GMT" }, "title" : { "text" : "The Weekly Challenge - 336" diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json index 6ee477d9a9..2a333386af 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-08-25 09:42:02 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-25 20:11:59 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2020.json b/stats/pwc-language-breakdown-2020.json index 3849122a8b..c5f9573d00 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-08-25 09:42:02 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-25 20:11:59 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2021.json b/stats/pwc-language-breakdown-2021.json index 38bc4e0dc3..c96952aeab 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-08-25 09:42:02 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-25 20:11:59 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2022.json b/stats/pwc-language-breakdown-2022.json index 04cdad8f95..659226fc06 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-08-25 09:42:02 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-25 20:11:59 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2023.json b/stats/pwc-language-breakdown-2023.json index 89d25584bf..d3f60c806d 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-08-25 09:42:02 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-25 20:11:59 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2024.json b/stats/pwc-language-breakdown-2024.json index be528e2175..bc4a17b665 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-08-25 09:42:02 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-25 20:11:59 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2025.json b/stats/pwc-language-breakdown-2025.json index dc08ef1307..56cab46fe4 100644 --- a/stats/pwc-language-breakdown-2025.json +++ b/stats/pwc-language-breakdown-2025.json @@ -8,15 +8,15 @@ "data" : [ [ "Perl", - 0 + 16 ], [ "Raku", - 2 + 4 ], [ "Blog", - 0 + 3 ] ], "id" : "336", @@ -637,7 +637,7 @@ { "drilldown" : "336", "name" : "336", - "y" : 2 + "y" : 23 }, { "drilldown" : "335", @@ -809,7 +809,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-25 09:42:02 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-25 20:11:59 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index b66bbfd458..0dadaa05a5 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -10,15 +10,15 @@ "data" : [ [ "Perl", - 17296 + 17312 ], [ "Raku", - 9631 + 9633 ], [ "Blog", - 6218 + 6221 |
