diff options
28 files changed, 2029 insertions, 1658 deletions
diff --git a/challenge-268/perlboy1967/perl/ch1.pl b/challenge-268/perlboy1967/perl/ch-1.pl index 74193f856b..74193f856b 100755 --- a/challenge-268/perlboy1967/perl/ch1.pl +++ b/challenge-268/perlboy1967/perl/ch-1.pl diff --git a/challenge-268/perlboy1967/perl/ch2.pl b/challenge-268/perlboy1967/perl/ch-2.pl index 9e165a160e..9e165a160e 100755 --- a/challenge-268/perlboy1967/perl/ch2.pl +++ b/challenge-268/perlboy1967/perl/ch-2.pl diff --git a/challenge-268/ulrich-rieke/cpp/ch-1.cpp b/challenge-268/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..795fd0116d --- /dev/null +++ b/challenge-268/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,47 @@ +#include <iostream>
+#include <vector>
+#include <ranges>
+#include <algorithm>
+#include <string>
+#include <utility>
+
+std::vector<std::string> split( const std::string & startline ,
+ const std::string & sep ) {
+ std::vector<std::string> separated ;
+ std::string::size_type start { 0 } ;
+ std::string::size_type pos ;
+ do {
+ pos = startline.find_first_of( sep , start ) ;
+ separated.push_back( startline.substr(start , pos - start )) ;
+ start = pos + 1 ;
+ } while ( pos != std::string::npos ) ;
+ return separated ;
+}
+
+int main( ) {
+ std::cout << "Enter some integers, separated by blanks!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ std::cout << "Enter the same number of integers, separated by blanks!\n" ;
+ std::string sec_line ;
+ std::getline( std::cin , sec_line ) ;
+ std::vector<std::string> firstNums { split( line , " " ) } ,
+ secondNums { split( sec_line , " " ) } ;
+ std::vector<int> firstNumbers , secondNumbers ;
+ for ( auto s : firstNums )
+ firstNumbers.push_back( std::stoi( s ) ) ;
+ for ( auto s : secondNums )
+ secondNumbers.push_back( std::stoi( s ) ) ;
+ std::ranges::sort( firstNumbers ) ;
+ std::ranges::sort( secondNumbers ) ;
+ std::vector<std::pair<int , int>> pairs ;
+ for ( int i = 0 ; i < firstNumbers.size( ) ; i++ )
+ pairs.push_back( std::make_pair( firstNumbers[i] , secondNumbers[i] )) ;
+ int comp = pairs.begin( )->second - pairs.begin( )->first ;
+ if ( std::all_of( pairs.begin( ) , pairs.end( ) , [comp]( auto p ) {
+ return p.second - p.first == comp ; } ))
+ std::cout << comp << '\n' ;
+ else
+ std::cout << '\n' ;
+ return 0 ;
+}
diff --git a/challenge-268/ulrich-rieke/cpp/ch-2.cpp b/challenge-268/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..9a5b01a047 --- /dev/null +++ b/challenge-268/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,29 @@ +#include <iostream>
+#include <vector>
+#include <iterator>
+#include <algorithm>
+#include <list>
+
+int main( ) {
+ std::cout << "Enter an even number of integers, separated by blanks!\n" ;
+ std::cout << "Enter e to end!\n" ;
+ std::vector<int> numbers { std::istream_iterator<int>{ std::cin } ,
+ std::istream_iterator<int>{} } ;
+ std::list<int> numlist { numbers.begin( ) , numbers.end( ) } ;
+ std::vector<int> target ;
+ while ( numlist.size( ) > 0 ) {
+ numlist.sort( ) ;
+ int smallest = numlist.front( ) ;
+ numlist.pop_front( ) ;
+ int secsmallest = numlist.front( ) ;
+ numlist.pop_front( ) ;
+ target.push_back( secsmallest ) ;
+ target.push_back( smallest ) ;
+ }
+ std::cout << "( " ;
+ std::copy( target.begin( ) , target.end( ) ,
+ std::ostream_iterator<int>( std::cout , " " ) ) ;
+ std::cout << ")\n" ;
+ return 0 ;
+}
+
diff --git a/challenge-268/ulrich-rieke/haskell/ch-1.hs b/challenge-268/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..4d5c6640ca --- /dev/null +++ b/challenge-268/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,22 @@ +module Challenge268
+ where
+import Data.List ( sort )
+
+solution :: [Int] -> [Int] -> [Int]
+solution firstList secondList =
+ let firstSorted = sort firstList
+ secondSorted = sort secondList
+ pairs = zip firstSorted secondSorted
+ comp = snd ( head pairs ) - fst ( head pairs )
+ in if all (\p -> snd p - fst p == comp ) pairs then [comp] else []
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some integers separated by blanks!"
+ firstLine <- getLine
+ putStrLn "Enter the same number of integers, separated by blanks!"
+ secondLine <- getLine
+ let firstNums = map read $ words firstLine
+ secondNums = map read $ words secondLine
+ result = solution firstNums secondNums
+ if not $ null result then print $ head result else print " "
diff --git a/challenge-268/ulrich-rieke/haskell/ch-2.hs b/challenge-268/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..8972ab8d2e --- /dev/null +++ b/challenge-268/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,13 @@ +module Challenge268_2
+ where
+import Data.List ( sort )
+import Data.List.Split ( chunksOf )
+
+solution :: [Int] -> [Int]
+solution = concat . map reverse . chunksOf 2 . sort
+
+main :: IO ( )
+main = do
+ putStrLn "Enter an even number of integers, separated by blanks!"
+ numberline <- getLine
+ print $ solution $ map read $ words numberline
diff --git a/challenge-268/ulrich-rieke/perl/ch-1.pl b/challenge-268/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..493dfbd40c --- /dev/null +++ b/challenge-268/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( all zip ) ;
+
+say "Enter some integers, separated by blanks!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @firstNumbers = split( /\s+/ , $line ) ;
+say "Enter the same number of integers, separated by blanks!" ;
+$line = <STDIN> ;
+chomp $line ;
+my @secondNumbers = split( /\s+/ , $line ) ;
+my @firstSorted = sort { $a <=> $b } @firstNumbers ;
+my @secondSorted = sort { $a <=> $b } @secondNumbers ;
+my @zipped = zip \@firstSorted , \@secondSorted ;
+my $comp = $zipped[0]->[1] - $zipped[0]->[0] ;
+if ( all { $_->[1] - $_->[0] == $comp } @zipped ) {
+ say $comp ;
+}
+else {
+ say " " ;
+}
diff --git a/challenge-268/ulrich-rieke/perl/ch-2.pl b/challenge-268/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..ef834d950c --- /dev/null +++ b/challenge-268/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter an even number of integers, separated by blanks!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @numbers = split ( /\s+/ , $line ) ;
+my @sorted = sort { $a <=> $b } @numbers ;
+my @target ;
+while ( @sorted ) {
+ my ( $smallest , $secsmallest ) = splice( @sorted , 0 , 2 ) ;
+ push( @target , $secsmallest , $smallest ) ;
+ @sorted = sort { $a <=> $b } @sorted ;
+}
+say "(" . join( ',' , @target ) . ")" ;
diff --git a/challenge-268/ulrich-rieke/raku/ch-1.raku b/challenge-268/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..6d2ae3b1d9 --- /dev/null +++ b/challenge-268/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,18 @@ +use v6 ;
+
+say "Enter some integers , separated by blanks!" ;
+my $line = $*IN.get ;
+my @firstNumbers = $line.words.map( {.Int} ) ;
+say "Enter the same number of integers, separated by blanks!" ;
+$line = $*IN.get ;
+my @secondNumbers = $line.words.map( {.Int} ) ;
+@firstNumbers .= sort( {$^a <=> $^b } ) ;
+@secondNumbers .= sort( {$^a <=> $^b} ) ;
+my @zipped = @firstNumbers Z @secondNumbers ;
+my $comp = @zipped[0][1] - @zipped[0][0] ;
+if ( @zipped.grep( {$_[1] - $_[0] == $comp } ).elems == @firstNumbers.elems ) {
+ say $comp ;
+}
+else {
+ say " " ;
+}
diff --git a/challenge-268/ulrich-rieke/raku/ch-2.raku b/challenge-268/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..30a59ff89a --- /dev/null +++ b/challenge-268/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,12 @@ +use v6 ;
+
+say "Enter an even number of integers, separated by blanks!" ;
+my $line = $*IN.get ;
+my @numbers = $line.words.map( {.Int} ) ;
+my @target ;
+while ( @numbers.elems > 0 ) {
+ @numbers .= sort( {$^a <=> $^b } ) ;
+ my ( $smallest , $secsmallest ) = @numbers.splice( 0 , 2 ) ;
+ @target.push( $secsmallest , $smallest ) ;
+}
+say "(" ~ @target.join( ',' ) ~ ")" ;
diff --git a/challenge-268/ulrich-rieke/rust/ch-1.rs b/challenge-268/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..a35079c6d0 --- /dev/null +++ b/challenge-268/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,29 @@ +use std::io ; + +fn main() { + println!("Enter some integers, separated by blanks!"); + let mut firstline : String = String::new( ) ; + io::stdin( ).read_line( &mut firstline ).unwrap( ) ; + let first_entered : &str = &*firstline ; + println!("Enter the same number of integers, separated by blanks!") ; + let mut secondline : String = String::new( ) ; + io::stdin( ).read_line( &mut secondline ).unwrap( ) ; + let sec_entered : &str = &*secondline ; + let mut first_numbers : Vec<i32> = first_entered.trim( ). + split_whitespace( ).map( | s | s.parse::<i32>( ).unwrap( ) ). + collect( ) ; + let mut second_numbers : Vec<i32> = sec_entered.trim( ). + split_whitespace( ).map( | s | s.parse::<i32>( ).unwrap( ) ). + collect( ) ; + first_numbers.sort( ) ; + second_numbers.sort( ) ; + let zipped : Vec<(i32 , i32)> = first_numbers.into_iter( ).zip( + second_numbers.into_iter( )).collect( ) ; + let comp : i32 = zipped[0].1 - zipped[0].0 ; + if zipped.iter( ).all( | p | p.1 - p.0 == comp ) { + println!("{}" , comp ) ; + } + else { + println!(" ") ; + } +} diff --git a/challenge-268/ulrich-rieke/rust/ch-2.rs b/challenge-268/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..d7ffacf96b --- /dev/null +++ b/challenge-268/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,20 @@ +use std::io ; + +fn main() { + println!("Enter an even number of integers , separated by blanks!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entered_line : &str = &*inline ; + let mut numbers : Vec<i32> = entered_line.trim( ). + split_whitespace( ). map( | s | s.parse::<i32>( ).unwrap( ) ) + .collect( ) ; + let mut target : Vec<i32> = Vec::new( ) ; + while numbers.len( ) > 0 { + numbers.sort( ) ; + let smallest : i32 = numbers.remove(0) ; + let sec_smallest : i32 = numbers.remove( 0 ) ; + target.push( sec_smallest ) ; + target.push( smallest ) ; + } + println!("{:?}" , target ) ; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 5b9375cfbb..b4dbc4cf69 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,46 +1,121 @@ { - "title" : { - "text" : "The Weekly Challenge - 268" + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "[Champions: 10] Last updated at 2024-05-06 21:47:52 GMT" }, "series" : [ { "colorByPoint" : 1, "data" : [ { + "y" : 3, + "name" : "Ali Moradi", + "drilldown" : "Ali Moradi" + }, + { + "y" : 3, + "name" : "Bob Lied", + "drilldown" : "Bob Lied" + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 2 + }, + { + "name" : "David Ferrone", + "y" : 2, + "drilldown" : "David Ferrone" + }, + { "y" : 2, "name" : "Feng Chang", "drilldown" : "Feng Chang" }, { - "drilldown" : "Mark Anderson", "y" : 2, - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "drilldown" : "Mark Anderson" + }, + { + "y" : 2, + "name" : "Niels van Dijke", + "drilldown" : "Niels van Dijke" + }, + { + "y" : 4, + "name" : "Thomas Kohler", + "drilldown" : "Thomas Kohler" + }, + { + "drilldown" : "Ulrich Rieke", + "y" : 4, + "name" : "Ulrich Rieke" + }, + { + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan", + "y" : 3 } ], "name" : "The Weekly Challenge - 268" } ], - "xAxis" : { - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, - "tooltip" : { - "followPointer" : 1, - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" - }, "drilldown" : { "series" : [ { - "id" : "Feng Chang", + "id" : "Ali Moradi", + "name" : "Ali Moradi", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Bob Lied", + "id" : "Bob Lied" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "name" : "Dave Jacoby", + "id" : "Dave Jacoby" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "name" : "David Ferrone", + "id" : "David Ferrone" + }, + { "name" : "Feng Chang", + "id" : "Feng Chang", "data" : [ [ "Raku", @@ -49,27 +124,92 @@ ] }, { + "name" : "Mark Anderson", + "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] + ] + }, + { + "id" : "Niels van Dijke", + "name" : "Niels van Dijke", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + "id" : "Thomas Kohler", + "name" : "Thomas Kohler" + }, + { + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan" } ] }, - "subtitle" : { - "text" : "[Champions: 2] Last updated at 2024-05-06 10:16:32 GMT" + "tooltip" : { + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "followPointer" : 1, + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" }, "plotOptions" : { "series" : { - "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "title" : { + "text" : "The Weekly Challenge - 268" + }, + "legend" : { + "enabled" : 0 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" } }, "chart" : { diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 21447cb321..534f22df09 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,20 +1,25 @@ { + "legend" : { + "enabled" : "false" + }, "yAxis" : { + "min" : 0, "title" : { "text" : null - }, - "min" : 0 + } + }, + "chart" : { + "type" : "column" }, "series" : [ { - "name" : "Contributions", "dataLabels" : { - "align" : "right", + "y" : 10, "format" : "{point.y:.0f}", + "rotation" : -90, + "align" : "right", "enabled" : "true", "color" : "#FFFFFF", - "y" : 10, - "rotation" : -90, "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" @@ -23,41 +28,36 @@ "data" : [ [ "Blog", - 4816 + 4821 ], [ "Perl", - 13863 + 13879 ], [ "Raku", - 8041 + 8043 ] - ] + ], + "name" : "Contributions" } ], + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "subtitle" : { + "text" : "Last updated at 2024-05-06 21:47:52 GMT" + }, "xAxis" : { + "type" : "category", "labels" : { "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" } - }, - "type" : "category" + } }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2024]" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "legend" : { - "enabled" : "false" - }, - "subtitle" : { - "text" : "Last updated at 2024-05-06 10:16:32 GMT" - }, - "chart" : { - "type" : "column" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index b4c1479b1a..d5aa007468 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,67 +1,69 @@ { - "tooltip" : { - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "followPointer" : "true" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, "legend" : { "enabled" : "false" }, - "title" : { - "text" : "The Weekly Challenge Language" + "chart" : { + "type" : "column" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-05-06 21:47:52 GMT" }, "series" : [ { + "name" : "The Weekly Challenge Languages", "data" : [ { - "name" : "#001", + "drilldown" : "001", "y" : 168, - "drilldown" : "001" + "name" : "#001" }, { - "name" : "#002", "y" : 133, + "name" : "#002", "drilldown" : "002" }, { + "drilldown" : "003", "name" : "#003", - "y" : 91, - "drilldown" : "003" + "y" : 91 }, { "drilldown" : "004", - "name" : "#004", - "y" : 106 + "y" : 106, + "name" : "#004" }, { "drilldown" : "005", - "y" : 82, - "name" : "#005" + "name" : "#005", + "y" : 82 }, { "drilldown" : "006", - "name" : "#006", - "y" : 63 + "y" : 63, + "name" : "#006" }, { + "drilldown" : "007", "name" : "#007", - "y" : 71, - "drilldown" : "007" + "y" : 71 }, { - "y" : 84, "name" : "#008", + "y" : 84, "drilldown" : "008" }, { + "drilldown" : "009", "name" : "#009", - "y" : 82, - "drilldown" : "009" + "y" : 82 }, { "name" : "#010", @@ -79,39 +81,39 @@ "name" : "#012" }, { - "drilldown" : "013", + "name" : "#013", "y" : 88, - "name" : "#013" + "drilldown" : "013" }, { - "name" : "#014", + "drilldown" : "014", "y" : 104, - "drilldown" : "014" + "name" : "#014" }, { - "name" : "#015", "y" : 103, + "name" : "#015", "drilldown" : "015" }, { + "drilldown" : "016", "y" : 75, - "name" : "#016", - "drilldown" : "016" + "name" : "#016" }, { "drilldown" : "017", - "y" : 87, - "name" : "#017" + "name" : "#017", + "y" : 87 }, { + "drilldown" : "018", "y" : 84, - "name" : "#018", - "drilldown" : "018" + "name" : "#018" }, { - "drilldown" : "019", + "name" : "#019", "y" : 105, - "name" : "#019" + "drilldown" : "019" }, { "drilldown" : "020", @@ -119,9 +121,9 @@ "y" : 103 }, { - "drilldown" : "021", "name" : "#021", - "y" : 74 + "y" : 74, + "drilldown" : "021" }, { "drilldown" : "022", @@ -129,28 +131,28 @@ "y" : 72 }, { - "name" : "#023", "y" : 101, + "name" : "#023", "drilldown" : "023" }, { "drilldown" : "024", - "name" : "#024", - "y" : 77 + "y" : 77, + "name" : "#024" }, { "drilldown" : "025", - "name" : "#025", - "y" : 62 + "y" : 62, + "name" : "#025" }, { - "drilldown" : "026", "name" : "#026", - "y" : 76 + "y" : 76, + "drilldown" : "026" }, { - "y" : 64, "name" : "#027", + "y" : 64, "drilldown" : "027" }, { @@ -159,39 +161,39 @@ "name" : "#028" }, { - "drilldown" : "029", + "name" : "#029", "y" : 83, - "name" : "#029" + "drilldown" : "029" }, { - "y" : 121, + "drilldown" : "030", "name" : "#030", - "drilldown" : "030" + "y" : 121 }, { - "y" : 93, "name" : "#031", + "y" : 93, "drilldown" : "031" }, { - "y" : 98, + "drilldown" : "032", "name" : "#032", - "drilldown" : "032" + "y" : 98 }, { - "name" : "#033", "y" : 114, + "name" : "#033", "drilldown" : "033" }, { - "y" : 70, + "drilldown" : "034", "name" : "#034", - "drilldown" : "034" + "y" : 70 }, { - "name" : "#035", + "drilldown" : "035", "y" : 68, - "drilldown" : "035" + "name" : "#035" }, { "drilldown" : "036", @@ -229,9 +231,9 @@ "y" : 98 }, { - "drilldown" : "043", "name" : "#043", - "y" : 72 + "y" : 72, + "drilldown" : "043" }, {< |
