diff options
| author | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2025-05-29 17:12:15 +0100 |
|---|---|---|
| committer | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2025-05-29 17:12:15 +0100 |
| commit | 072ce0c8580aec64bae63f3da50d19c65b3ef89d (patch) | |
| tree | ba05aba6c470b5251b22d47a35039d5fd339807a | |
| parent | 5966791b5f9af95e1f4753558a91422361d6bf8a (diff) | |
| download | perlweeklychallenge-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.
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, |
