aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2025-05-29 17:12:15 +0100
committerMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2025-05-29 17:12:15 +0100
commit072ce0c8580aec64bae63f3da50d19c65b3ef89d (patch)
treeba05aba6c470b5251b22d47a35039d5fd339807a
parent5966791b5f9af95e1f4753558a91422361d6bf8a (diff)
downloadperlweeklychallenge-club-072ce0c8580aec64bae63f3da50d19c65b3ef89d.tar.gz
perlweeklychallenge-club-072ce0c8580aec64bae63f3da50d19c65b3ef89d.tar.bz2
perlweeklychallenge-club-072ce0c8580aec64bae63f3da50d19c65b3ef89d.zip
- Added solutions by Bob Lied.
- Added solutions by Thomas Kohler. - Added solutions by Wanderdoc. - Added solutions by Ulrich Rieke.
-rwxr-xr-xchallenge-323/ulrich-rieke/cpp/ch-1.cpp31
-rwxr-xr-xchallenge-323/ulrich-rieke/cpp/ch-2.cpp57
-rwxr-xr-xchallenge-323/ulrich-rieke/haskell/ch-1.hs18
-rwxr-xr-xchallenge-323/ulrich-rieke/haskell/ch-2.hs40
-rwxr-xr-xchallenge-323/ulrich-rieke/perl/ch-1.pl19
-rwxr-xr-xchallenge-323/ulrich-rieke/perl/ch-2.pl43
-rwxr-xr-xchallenge-323/ulrich-rieke/raku/ch-1.raku15
-rwxr-xr-xchallenge-323/ulrich-rieke/raku/ch-2.raku38
-rwxr-xr-xchallenge-323/ulrich-rieke/rust/ch-1.rs18
-rwxr-xr-xchallenge-323/ulrich-rieke/rust/ch-2.rs52
-rw-r--r--stats/pwc-current.json70
-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.json10
-rw-r--r--stats/pwc-language-breakdown-summary.json8
-rw-r--r--stats/pwc-leaders.json22
-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.json6
-rw-r--r--stats/pwc-summary-301-330.json8
-rw-r--r--stats/pwc-summary-31-60.json6
-rw-r--r--stats/pwc-summary-61-90.json2
-rw-r--r--stats/pwc-summary-91-120.json2
-rw-r--r--stats/pwc-summary.json14
-rw-r--r--stats/pwc-yearly-language-summary.json10
33 files changed, 456 insertions, 57 deletions
diff --git a/challenge-323/ulrich-rieke/cpp/ch-1.cpp b/challenge-323/ulrich-rieke/cpp/ch-1.cpp
new file mode 100755
index 0000000000..8576d58b27
--- /dev/null
+++ b/challenge-323/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,31 @@
+#include <string>
+#include <vector>
+#include <iostream>
+#include <sstream>
+
+std::vector<std::string> split( const std::string & text , char delimiter ) {
+ std::vector<std::string> tokens ;
+ std::string word ;
+ std::istringstream istr { text } ;
+ while ( std::getline( istr , word , delimiter ))
+ tokens.push_back( word ) ;
+ return tokens ;
+}
+
+int main( ) {
+ std::cout << "Enter some operations separated by whitespace!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ auto tokens { split( line, ' ' ) } ;
+ int value = 0 ;
+ for ( auto op : tokens ) {
+ if ( op.find( "++" ) != std::string::npos ) {
+ value++ ;
+ }
+ if ( op.find( "--" ) != std::string::npos ) {
+ value-- ;
+ }
+ }
+ std::cout << value << '\n' ;
+ return 0 ;
+}
diff --git a/challenge-323/ulrich-rieke/cpp/ch-2.cpp b/challenge-323/ulrich-rieke/cpp/ch-2.cpp
new file mode 100755
index 0000000000..279842f93d
--- /dev/null
+++ b/challenge-323/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,57 @@
+#include <vector>
+#include <string>
+#include <sstream>
+#include <utility>
+#include <iostream>
+#include <numeric>
+
+std::vector<std::string> split( const std::string & text , char delimiter ) {
+ std::vector<std::string> tokens ;
+ std::string word ;
+ std::istringstream istr { text } ;
+ while ( std::getline( istr , word , delimiter ))
+ tokens.push_back( word ) ;
+ return tokens ;
+}
+
+int main( ) {
+ std::cout << "Enter an income!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ int income { std::stoi( line ) } ;
+ std::cout << "Enter some tax brackets separated by blanks!\n";
+ std::cout << "Do it like that : [a,b] [c,d] and so on!\n" ;
+ std::getline( std::cin , line ) ;
+ auto brackets { split( line , ' ' ) } ;
+ std::vector<std::pair<int , int>> pairs ;
+ for ( auto br : brackets ) {
+ auto pair { split( br , ',' ) } ;
+ int firstelement = std::stoi( pair[0].substr( 1 ) ) ;
+ int len = static_cast<int>( pair[1].length( ) ) ;
+ int secondelement = std::stoi( pair[1].substr(0 , len - 1 ) ) ;
+ pairs.push_back( std::make_pair( firstelement , secondelement ) ) ;
+ }
+ std::vector<int> differences ;
+ for ( auto p : pairs )
+ differences.push_back( p.first ) ;
+ std::adjacent_difference( differences.begin( ) , differences.end( ) ,
+ differences.begin( ) ) ;
+ std::vector<int> taxparts ;
+ int len = differences.size( ) ;
+ int sum = 0 ;
+ int index = 0 ;
+ while ( sum < income ) {
+ taxparts.push_back( differences[index] ) ;
+ sum += differences[index] ;
+ index++ ;
+ }
+ if ( sum > income ) {
+ taxparts.back( ) -= (sum - income) ;
+ }
+ double totaltax = 0.0 ;
+ for ( int i = 0 ; i < taxparts.size( ) ; i++ ) {
+ totaltax += taxparts[i] * pairs[i].second / 100.0 ;
+ }
+ std::cout << totaltax << '\n' ;
+ return 0 ;
+}
diff --git a/challenge-323/ulrich-rieke/haskell/ch-1.hs b/challenge-323/ulrich-rieke/haskell/ch-1.hs
new file mode 100755
index 0000000000..7ba6b90fae
--- /dev/null
+++ b/challenge-323/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,18 @@
+module Challenge323
+ where
+import Data.List ( isInfixOf )
+
+
+solution :: [String] -> Int
+solution strings = pluses - minuses
+ where
+ pluses :: Int
+ pluses = length $ filter (isInfixOf "++" ) strings
+ minuses :: Int
+ minuses = length $ filter (isInfixOf "--" ) strings
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some operations separated by blanks!"
+ opline <- getLine
+ print $ solution $ words opline
diff --git a/challenge-323/ulrich-rieke/haskell/ch-2.hs b/challenge-323/ulrich-rieke/haskell/ch-2.hs
new file mode 100755
index 0000000000..ef27d40b4f
--- /dev/null
+++ b/challenge-323/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,40 @@
+module Challenge323_2
+ where
+import Data.List.Split ( splitOn , divvy)
+import Data.List ( init , splitAt)
+
+parseBracket :: String -> (Int , Int)
+parseBracket str =
+ let pair = splitOn "," $ take ( length str - 2 ) $ drop 1 str
+ in ( read $ head pair , read $ last pair )
+
+makePairs :: String -> [(Int , Int)]
+makePairs = map parseBracket . words
+
+splitSum :: Int -> [Int] -> [Int]
+splitSum number list = head $ filter ( (>= number ) . sum ) partialLists
+ where
+ partialLists :: [[Int]]
+ partialLists = map (\i -> fst $ splitAt i list ) [0..length list]
+
+solution :: Int -> [(Int , Int)] -> Double
+solution income taxes =
+ let uptos = map fst taxes
+ differences = if length taxes == 1 then [head uptos] else
+ [head uptos] ++ (map (\subli -> last subli - head subli ) $
+ divvy 2 1 uptos)
+ corrected = splitSum income differences
+ taxparts = if sum corrected > income then init corrected ++ [last corrected -
+ ( sum corrected - income )] else corrected
+ zipped = zip taxparts ( map snd taxes )
+ in sum $ map (\p -> fromIntegral ( fst p ) * ( (fromIntegral $ snd p) /
+ fromIntegral 100 )) zipped
+
+main :: IO ( )
+main = do
+ putStrLn "Enter an income!"
+ incomeline <- getLine
+ putStrLn "Enter tax brackets separated by blanks!"
+ putStrLn "Do it like that : [a,b] [c,d] and so on!"
+ bracketline <- getLine
+ print $ solution ( read incomeline ) (makePairs bracketline )
diff --git a/challenge-323/ulrich-rieke/perl/ch-1.pl b/challenge-323/ulrich-rieke/perl/ch-1.pl
new file mode 100755
index 0000000000..27b618828d
--- /dev/null
+++ b/challenge-323/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter some operations separated by blanks!" ;
+my $operations = <STDIN> ;
+chomp $operations ;
+my @ops = split( /\s/ , $operations ) ;
+my $value = 0 ;
+for my $op ( @ops ) {
+ if ( $op =~ /\+{2}/ ) {
+ $value++ ;
+ }
+ if ( $op =~ /\-{2}/ ) {
+ $value-- ;
+ }
+}
+say $value ;
diff --git a/challenge-323/ulrich-rieke/perl/ch-2.pl b/challenge-323/ulrich-rieke/perl/ch-2.pl
new file mode 100755
index 0000000000..8781217593
--- /dev/null
+++ b/challenge-323/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,43 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter an income!" ;
+my $income = <STDIN> ;
+chomp $income ;
+say "Enter [a,b] [c,d] and so on as a number of taxrates!" ;
+my $taxline = <STDIN> ;
+chomp $taxline ;
+my @pairs ; #this is denoted @tax in the task
+my @brackets = split( /\s/ , $taxline ) ;
+for my $br ( @brackets ) {
+ if ( $br =~ /^\[(\d+)\s*,\s*(\d+)\]$/ ) {
+ my ( $number , $tax ) = ( $1 , $2 ) ;
+ push( @pairs , [$number , $tax] ) ;
+ }
+}
+my @differences ; #differences between first elements of neighbouring pairs
+#in @pairs
+push( @differences , $pairs[0]->[0] ) ;
+for my $i ( 1..scalar( @pairs ) - 1 ) {
+ push( @differences , $pairs[$i]->[0] - $pairs[$i - 1]->[0] ) ;
+}
+my @taxparts ; #how many elements of $income fall into each category of @pairs?
+my $sum = 0 ;#sum up the elements of @differences until the sum is at least
+#equal to $income
+my $index = 0 ;
+while ( $sum < $income ) {
+ push( @taxparts , $differences[ $index ] ) ;
+ $sum += $differences[ $index ] ;
+ $index++ ;
+}
+if ( $sum > $income ) {
+ my $last = pop @taxparts ;
+ push( @taxparts , $last - ( $sum - $income ) ) ;
+}
+my $totaltax = 0 ;
+for my $i (0..scalar( @taxparts ) - 1 ) {
+ $totaltax += $taxparts[ $i ] * $pairs[$i]->[1] / 100 ;
+}
+say $totaltax ;
diff --git a/challenge-323/ulrich-rieke/raku/ch-1.raku b/challenge-323/ulrich-rieke/raku/ch-1.raku
new file mode 100755
index 0000000000..4ea8b7d5b2
--- /dev/null
+++ b/challenge-323/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,15 @@
+use v6 ;
+
+say "Enter some operations separated by blanks!" ;
+my $opline = $*IN.get ;
+my @ops = $opline.words ;
+my $value = 0 ;
+for @ops -> $op {
+ if ( $op ~~ /'+' '+'/ ) {
+ $value++ ;
+ }
+ if ( $op ~~ /'-' '-'/ ) {
+ $value-- ;
+ }
+}
+$value.say ;
diff --git a/challenge-323/ulrich-rieke/raku/ch-2.raku b/challenge-323/ulrich-rieke/raku/ch-2.raku
new file mode 100755
index 0000000000..5fb8ce0705
--- /dev/null
+++ b/challenge-323/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,38 @@
+use v6 ;
+
+say "Enter an income!" ;
+my $inline = $*IN.get ;
+my $income = $inline.Int ;
+say "Enter , separated by blanks , two numbers in brackets, separated by blanks!";
+say "Do it like that [a,b] [c,d] !" ;
+my $nextline = $*IN.get ;
+my @brackets = $nextline.words ;
+my @pairs ;
+for @brackets -> $br {
+ if ( $br ~~ /^ '[' (\d+) \s* ',' \s* (\d+) ']' $/ ) {
+ my ( $number , $tax ) = ( +$0 , +$1 ) ;
+ @pairs.push( ($number , $tax) ) ;
+ }
+}
+my @differences ; #for the differences between the first elements of @pairs
+@differences.push( @pairs[0][0] ) ;
+for (1..@pairs.elems - 1 ) -> $index {
+ @differences.push( @pairs[$index][0] - @pairs[$index - 1][0] ) ;
+}
+my @taxparts ; #for the parts of income that fall into every tax category
+my $sum = 0 ; #sum up the elements of @differences until at least $income
+my $index = 0 ;
+while ( $sum < $income ) {
+ @taxparts.push( @differences[$index] ) ;
+ $sum += @differences[$index] ;
+ $index++ ;
+}
+if ( $sum > $income ) {
+ my $last = @taxparts.pop ;
+ @taxparts.push( $last - ( $sum - $income ) ) ;
+}
+my $totaltax = 0 ;
+for (0..@taxparts.elems - 1 ) -> $i {
+ $totaltax += @taxparts[ $i ] * @pairs[$i][1] / 100 ;
+}
+say $totaltax ;
diff --git a/challenge-323/ulrich-rieke/rust/ch-1.rs b/challenge-323/ulrich-rieke/rust/ch-1.rs
new file mode 100755
index 0000000000..8d817f9780
--- /dev/null
+++ b/challenge-323/ulrich-rieke/rust/ch-1.rs
@@ -0,0 +1,18 @@
+use std::io ;
+
+fn main() {
+ println!("Enter a number of operations!");
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let operations : Vec<&str> = inline.trim( ).split_whitespace( ).collect( ) ;
+ let mut value : i32 = 0 ;
+ for op in operations {
+ if op.contains( "++" ) {
+ value += 1 ;
+ }
+ if op.contains( "--" ) {
+ value -= 1 ;
+ }
+ }
+ println!("{}" , value ) ;
+}
diff --git a/challenge-323/ulrich-rieke/rust/ch-2.rs b/challenge-323/ulrich-rieke/rust/ch-2.rs
new file mode 100755
index 0000000000..b08a3bd0da
--- /dev/null
+++ b/challenge-323/ulrich-rieke/rust/ch-2.rs
@@ -0,0 +1,52 @@
+use std::io ;
+
+fn main() {
+ println!("Enter an income amount!");
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let income : u16 = inline.trim( ).parse::<u16>( ).unwrap( ) ;
+ println!("Enter , separated by blanks and in brackets, tax rates!") ;
+ println!("For example : [a,b] [c,d] and so on!" ) ;
+ let mut taxrates : Vec<(u16,u16)> = Vec::new( ) ;
+ let mut taxline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut taxline ).unwrap( ) ;
+ let brackets : Vec<&str> = taxline.trim( ).split_whitespace( ).
+ collect( ) ;
+ for br in brackets {
+ let commapos : usize = br.find( "," ).unwrap( ) ;
+ let cur_string : String = br.into( ) ;
+ let amount : u16 = cur_string[1..commapos].parse::<u16>( ).unwrap( ) ;
+ let rate : u16 = cur_string[commapos + 1 .. cur_string.len( ) - 1 ].
+ parse::<u16>( ).unwrap( ) ;
+ taxrates.push((amount , rate ) ) ;
+ }
+ let mut total_tax : f32 = 0.0 ;
+ if income == 0 {
+ println!("{}" , 0.0) ;
+ }
+ else {
+ let mut taxparts : Vec<u16> = Vec::new( ) ;
+ let mut differences : Vec<u16> = Vec::new( ) ;
+ let len : usize = taxrates.len( ) ;
+ differences.push( taxrates[0].0 ) ;
+ for i in 1 .. len {
+ let diff : u16 = taxrates[i].0 - taxrates[i - 1].0 ;
+ differences.push( diff ) ;
+ }
+ let mut pos : usize = 0 ;
+ while taxparts.iter( ).sum::<u16>( ) < income {
+ taxparts.push( differences[pos] ) ;
+ pos += 1 ;
+ }
+ let sum : u16 = taxparts.iter( ).sum( ) ;
+ if sum > income {
+ let last : u16 = taxparts.remove( taxparts.len( ) - 1 ) ;
+ taxparts.push( last - (sum - income ) ) ;
+ }
+ for i in 0..taxparts.len( ) {
+ total_tax += taxparts[i] as f32 * ( taxrates[i].1 as
+ f32 / 100 as f32 )
+ }
+ println!("{}" , total_tax ) ;
+ }
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index fccc1fd507..6d4b44cf7b 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -45,6 +45,16 @@
2
]
],
+ "id" : "Bob Lied",
+ "name" : "Bob Lied"
+ },
+ {
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
"id" : "David Ferrone",
"name" : "David Ferrone"
},
@@ -148,11 +158,49 @@
],
[
"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"
}
]
},
@@ -188,6 +236,11 @@
"y" : 2
},
{
+ "drilldown" : "Bob Lied",
+ "name" : "Bob Lied",
+ "y" : 2
+ },
+ {
"drilldown" : "David Ferrone",
"name" : "David Ferrone",
"y" : 2
@@ -233,16 +286,31 @@
"y" : 4
},
{
+ "drilldown" : "Thomas Kohler",
+ "name" : "Thomas Kohler",
+ "y" : 4
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
"drilldown" : "W. Luis Mochan",
"name" : "W. Luis Mochan",
"y" : 3
+ },
+ {
+ "drilldown" : "Wanderdoc",
+ "name" : "Wanderdoc",
+ "y" : 2
}
],
"name" : "The Weekly Challenge - 323"
}
],
"subtitle" : {
- "text" : "[Champions: 13] Last updated at 2025-05-27 10:38:21 GMT"
+ "text" : "[Champions: 17] Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "The Weekly Challenge - 323"
diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json
index 6cab80afe7..0752698da6 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-05-27 10:38:21 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2020.json b/stats/pwc-language-breakdown-2020.json
index 186affde41..4b655ddf19 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-05-27 10:38:21 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2021.json b/stats/pwc-language-breakdown-2021.json
index 57690cae08..851ce6f18f 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-05-27 10:38:21 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2022.json b/stats/pwc-language-breakdown-2022.json
index a004ad98ab..e5e71cc050 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-05-27 10:38:21 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2023.json b/stats/pwc-language-breakdown-2023.json
index 5e92829007..ec24d2c53f 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-05-27 10:38:21 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2024.json b/stats/pwc-language-breakdown-2024.json
index cd9b94bd9e..3fc703cc1e 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-05-27 10:38:21 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-2025.json b/stats/pwc-language-breakdown-2025.json
index 172460b206..3e12e27599 100644
--- a/stats/pwc-language-breakdown-2025.json
+++ b/stats/pwc-language-breakdown-2025.json
@@ -8,15 +8,15 @@
"data" : [
[
"Perl",
- 20
+ 28
],
[
"Raku",
- 8
+ 10
],
[
"Blog",
- 13
+ 15
]
],
"id" : "323",
@@ -403,7 +403,7 @@
{
"drilldown" : "323",
"name" : "323",
- "y" : 41
+ "y" : 53
},
{
"drilldown" : "322",
@@ -510,7 +510,7 @@
}
],
"subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-05-27 10:38:21 GMT"
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "The Weekly Challenge Language"
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index d746c6e814..6fcacea54d 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -10,15 +10,15 @@
"data" : [
[
"Perl",
- 16690
+ 16698
],
[
"Raku",
- 9296
+ 9298
],
[
"Blog",
- 5928
+ 5930
]
],
"dataLabels" : {
@@ -37,7 +37,7 @@
}
],
"subtitle" : {
- "text" : "Last updated at 2025-05-27 10:38:21 GMT"
+ "text" : "Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "The Weekly Challenge Contributions [2019 - 2025]"
diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json
index b1df94b9fb..5f1285d0a9 100644
--- a/stats/pwc-leaders.json
+++ b/stats/pwc-leaders.json
@@ -112,11 +112,11 @@
"data" : [
[
"Perl",
- 482
+ 484
],
[
"Raku",
- 490
+ 492
]
],
"id" : "Ulrich Rieke",
@@ -318,11 +318,11 @@
"data" : [
[
"Perl",
- 246
+ 248
],
[
"Blog",
- 239
+ 241
]
],
"id" : "Thomas Kohler",
@@ -424,7 +424,7 @@
"data" : [
[
"Perl",
- 348
+ 350
],
[
"Blog",
@@ -544,7 +544,7 @@
"data" : [
[
"Perl",
- 310
+ 312
],
[
"Blog",
@@ -827,7 +827,7 @@
{
"drilldown" : "Ulrich Rieke",
"name" : "7: Ulrich Rieke",
- "y" : 1944
+ "y" : 1952
},
{
"drilldown" : "Flavio Poletti",
@@ -892,7 +892,7 @@
{
"drilldown" : "Thomas Kohler",
"name" : "20: Thomas Kohler",
- "y" : 970
+ "y" : 978
},
{
"drilldown" : "Feng Chang",
@@ -927,7 +927,7 @@
{
"drilldown" : "Bob Lied",
"name" : "27: Bob Lied",
- "y" : 780
+ "y" : 784
},
{
"drilldown" : "Niels van Dijke",
@@ -967,7 +967,7 @@
{
"drilldown" : "Wanderdoc",
"name" : "35: Wanderdoc",
- "y" : 624
+ "y" : 628
},
{
"drilldown" : "David Ferrone",
@@ -1049,7 +1049,7 @@
}
],
"subtitle" : {
- "text" : "Click the columns to drilldown the score breakdown. Last updated at 2025-05-27 10:38:21 GMT"
+ "text" : "Click the columns to drilldown the score breakdown. Last updated at 2025-05-29 16:10:55 GMT"
},
"title" : {
"text" : "Team Leaders (TOP 50)"
diff --git a/stats/pwc-summary-1-30.json b/stats/pwc-summary-1-30.json
index 17463b3392..24b793dd9d 100644
--- a/stats/pwc-summary-1-30.json
+++ b/stats/pwc-summary-1-30.json
@@ -115,