diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-11-15 21:27:27 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-15 21:27:27 +0000 |
| commit | 9715f6a957689e688b2c4bcbd491e77d318fcbe7 (patch) | |
| tree | 56fc4453c1ddfc507391dcdc3764e56072f2f08b | |
| parent | b3a11494dfbcb9be7052f8f6f32a9afec052485f (diff) | |
| parent | 7d92a145e089e59f0f830843ba91cd7223bc6c98 (diff) | |
| download | perlweeklychallenge-club-9715f6a957689e688b2c4bcbd491e77d318fcbe7.tar.gz perlweeklychallenge-club-9715f6a957689e688b2c4bcbd491e77d318fcbe7.tar.bz2 perlweeklychallenge-club-9715f6a957689e688b2c4bcbd491e77d318fcbe7.zip | |
Merge pull request #9075 from deadmarshal/TWC243_extra
TWC243 extra solutions
24 files changed, 477 insertions, 0 deletions
diff --git a/challenge-243/deadmarshal/c/ch-1.c b/challenge-243/deadmarshal/c/ch-1.c new file mode 100644 index 0000000000..c954b491a4 --- /dev/null +++ b/challenge-243/deadmarshal/c/ch-1.c @@ -0,0 +1,21 @@ +#include<stdio.h> + +size_t reverse_pairs(int *arr,size_t sz) +{ + size_t count = 0; + for(size_t i = 0; i < sz-1; ++i) + for(size_t j = i+1; j < sz; ++j) + if(arr[i] > (2 * arr[j])) count++; + return count; +} + +int main() +{ + int arr1[] = {1,3,2,3,1}; + int arr2[] = {2,4,3,5,1}; + size_t sz1 = 5,sz2 = 5; + printf("%zu\n",reverse_pairs(arr1,sz1)); + printf("%zu\n",reverse_pairs(arr2,sz2)); + return 0; +} + diff --git a/challenge-243/deadmarshal/c/ch-2.c b/challenge-243/deadmarshal/c/ch-2.c new file mode 100644 index 0000000000..544bb6a1b4 --- /dev/null +++ b/challenge-243/deadmarshal/c/ch-2.c @@ -0,0 +1,21 @@ +#include<stdio.h> + +size_t floor_sum(int *arr,size_t sz) +{ + size_t sum = 0; + for(size_t i = 0; i < sz; ++i) + for(size_t j = 0; j < sz; ++j) + sum += (size_t)(arr[i] / arr[j]); + return sum; +} + +int main(void) +{ + int arr1[] = {2,5,9}; + int arr2[] = {7,7,7,7,7,7,7}; + size_t sz = 3, sz2 = 7; + printf("%zu\n",floor_sum(arr1,sz)); + printf("%zu\n",floor_sum(arr2,sz2)); + return 0; +} + diff --git a/challenge-243/deadmarshal/cpp/ch-1.cpp b/challenge-243/deadmarshal/cpp/ch-1.cpp new file mode 100644 index 0000000000..1400521502 --- /dev/null +++ b/challenge-243/deadmarshal/cpp/ch-1.cpp @@ -0,0 +1,21 @@ +#include<iostream> +#include<vector> + +template<typename T> +std::size_t reverse_pairs(const std::vector<T> &vec) +{ + std::size_t count{}; + for(std::size_t i = 0; i < vec.size()-1; ++i) + for(std::size_t j = i+1; j < vec.size(); ++j) + if(vec.at(i) > (2 * vec.at(j))) count++; + return count; +} + +int main() +{ + std::vector<int> vec1{1,3,2,3,1},vec2{2,4,3,5,1}; + std::cout << reverse_pairs<int>(vec1) << '\n' + << reverse_pairs<int>(vec2) << '\n'; + return 0; +} + diff --git a/challenge-243/deadmarshal/cpp/ch-2.cpp b/challenge-243/deadmarshal/cpp/ch-2.cpp new file mode 100644 index 0000000000..91ab6afe0b --- /dev/null +++ b/challenge-243/deadmarshal/cpp/ch-2.cpp @@ -0,0 +1,21 @@ +#include<iostream> +#include<vector> + +template<typename T> +std::size_t floor_sum(const std::vector<T> &vec) +{ + std::size_t sum{}; + for(std::size_t i{}; i < vec.size(); ++i) + for(std::size_t j{}; j < vec.size(); ++j) + sum += static_cast<std::size_t>(vec.at(i) / vec.at(j)); + return sum; +} + +int main() +{ + std::vector<int> vec1{2,5,9},vec2{7,7,7,7,7,7,7}; + std::cout << floor_sum<int>(vec1) << '\n' + << floor_sum<int>(vec2) << '\n'; + return 0; +} + diff --git a/challenge-243/deadmarshal/d/ch1.d b/challenge-243/deadmarshal/d/ch1.d new file mode 100644 index 0000000000..82b886fd0d --- /dev/null +++ b/challenge-243/deadmarshal/d/ch1.d @@ -0,0 +1,19 @@ +import std.stdio:writeln; + +int reverse_pairs(ref int[] arr) +{ + int count = 0; + foreach(i;0..arr.length) + foreach(j;i+1..arr.length) + if(arr[i] > 2 * arr[j]) count++; + return count; +} + +void main() +{ + int[] arr1 = [1,3,2,3,1]; + int[] arr2 = [2,4,3,5,1]; + writeln(reverse_pairs(arr1)); + writeln(reverse_pairs(arr2)); +} + diff --git a/challenge-243/deadmarshal/d/ch2.d b/challenge-243/deadmarshal/d/ch2.d new file mode 100644 index 0000000000..13c2f017c3 --- /dev/null +++ b/challenge-243/deadmarshal/d/ch2.d @@ -0,0 +1,19 @@ +import std.stdio:writeln; + +ulong floor_sum(ref int[] arr) +{ + ulong sum = 0; + for(ulong i = 0; i < arr.length; ++i) + for(ulong j = 0; j < arr.length; ++j) + sum += int(arr[i] / arr[j]); + return sum; +} + +void main() +{ + int[] arr1 = [2,5,9]; + int[] arr2 = [7,7,7,7,7,7,7]; + writeln(floor_sum(arr1)); + writeln(floor_sum(arr2)); +} + diff --git a/challenge-243/deadmarshal/go/ch1.go b/challenge-243/deadmarshal/go/ch1.go new file mode 100644 index 0000000000..32ff5872e0 --- /dev/null +++ b/challenge-243/deadmarshal/go/ch1.go @@ -0,0 +1,24 @@ +package main + +import ( + "fmt" +) + +func reversePairs(arr []int) int { + count := 0 + for i := 0; i < len(arr)-1; i++ { + for j := i + 1; j < len(arr); j++ { + if arr[i] > 2*arr[j] { + count += 1 + } + } + } + return count +} + +func main() { + arr1 := []int{1, 3, 2, 3, 1} + arr2 := []int{2, 4, 3, 5, 1} + fmt.Println(reversePairs(arr1)) + fmt.Println(reversePairs(arr2)) +} diff --git a/challenge-243/deadmarshal/go/ch2.go b/challenge-243/deadmarshal/go/ch2.go new file mode 100644 index 0000000000..0d6ef1f80b --- /dev/null +++ b/challenge-243/deadmarshal/go/ch2.go @@ -0,0 +1,22 @@ +package main + +import ( + "fmt" +) + +func floorSum(arr []int) int { + sum := 0 + for _, v1 := range arr { + for _, v2 := range arr { + sum += v1 / v2 + } + } + return sum +} + +func main() { + arr1 := []int{2, 5, 9} + arr2 := []int{7, 7, 7, 7, 7, 7, 7} + fmt.Println(floorSum(arr1)) + fmt.Println(floorSum(arr2)) +} diff --git a/challenge-243/deadmarshal/java/Ch1.java b/challenge-243/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..ae2eb24e29 --- /dev/null +++ b/challenge-243/deadmarshal/java/Ch1.java @@ -0,0 +1,20 @@ +import java.util.ArrayList; +import java.util.List; + +public class Ch1 { + public static void main(String[] args) { + ArrayList<Integer> list1 = new ArrayList<>(List.of(1,3,2,3,1)); + ArrayList<Integer> list2 = new ArrayList<>(List.of(2,4,3,5,1)); + System.out.println(reverse_pairs(list1)); + System.out.println(reverse_pairs(list2)); + } + + private static int reverse_pairs(List<Integer> list) { + int count = 0; + for(int i = 0; i < list.size()-1; ++i) + for(int j = i+1; j < list.size(); ++j) + if(list.get(i) > 2 * list.get(j)) count++; + return count; + } +} + diff --git a/challenge-243/deadmarshal/java/Ch2.java b/challenge-243/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..6898bee041 --- /dev/null +++ b/challenge-243/deadmarshal/java/Ch2.java @@ -0,0 +1,20 @@ +import java.util.ArrayList; +import java.util.List; + +public class Ch2 { + public static void main(String[] args) { + ArrayList<Integer> list1 = new ArrayList<>(List.of(2,5,9)); + ArrayList<Integer> list2 = new ArrayList<>(List.of(7,7,7,7,7,7,7)); + System.out.println(floor_sum(list1)); + System.out.println(floor_sum(list2)); + } + + private static int floor_sum(List<Integer> list) { + int sum = 0; + for(int i = 0; i < list.size(); ++i) + for(int j = 0; j < list.size(); ++j) + sum += list.get(i) / list.get(j); + return sum; + } +} + diff --git a/challenge-243/deadmarshal/lua/ch-1.lua b/challenge-243/deadmarshal/lua/ch-1.lua new file mode 100644 index 0000000000..7bb6d2ebaa --- /dev/null +++ b/challenge-243/deadmarshal/lua/ch-1.lua @@ -0,0 +1,16 @@ +#!/usr/bin/env lua + +local function reverse_pairs(t) + assert(type(t) == 'table','t must be a table!') + local count = 0 + for i=1,#t-1 do + for j=i+1,#t do + if t[i] > 2 * t[j] then count = count + 1 end + end + end + return count +end + +print(reverse_pairs{1,3,2,3,1}) +print(reverse_pairs{2,4,3,5,1}) + diff --git a/challenge-243/deadmarshal/lua/ch-2.lua b/challenge-243/deadmarshal/lua/ch-2.lua new file mode 100644 index 0000000000..c71dfcc814 --- /dev/null +++ b/challenge-243/deadmarshal/lua/ch-2.lua @@ -0,0 +1,16 @@ +#!/usr/bin/env lua + +local function floor_sum(t) + assert(type(t) == 'table','t must be a table!') + local sum = 0 + for i=1,#t do + for j=1,#t do + sum = sum + (t[i] // t[j]) + end + end + return sum +end + +print(floor_sum{2,5,9}) +print(floor_sum{7,7,7,7,7,7,7}) + diff --git a/challenge-243/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-243/deadmarshal/modula-3/ch1/src/Ch1.m3 new file mode 100644 index 0000000000..232adaff15 --- /dev/null +++ b/challenge-243/deadmarshal/modula-3/ch1/src/Ch1.m3 @@ -0,0 +1,24 @@ +MODULE Ch1 EXPORTS Main; + +IMPORT IO; + +VAR + A1:ARRAY[0..4] OF INTEGER := ARRAY OF INTEGER{1,3,2,3,1}; + A2:ARRAY[0..4] OF INTEGER := ARRAY OF INTEGER{2,4,3,5,1}; + +PROCEDURE ReversePairs(VAR Arr:ARRAY OF INTEGER):INTEGER = + VAR Count:INTEGER := 0; + BEGIN + FOR I := FIRST(Arr) TO LAST(Arr)-1 DO + FOR J := I+1 TO LAST(Arr) DO + IF Arr[I] > (2 * Arr[J]) THEN INC(Count) END + END + END; + RETURN Count + END ReversePairs; + +BEGIN + IO.PutInt(ReversePairs(A1)); IO.Put("\n"); + IO.PutInt(ReversePairs(A2)); IO.Put("\n"); +END Ch1. + diff --git a/challenge-243/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-243/deadmarshal/modula-3/ch1/src/m3makefile new file mode 100644 index 0000000000..0ee72d695b --- /dev/null +++ b/challenge-243/deadmarshal/modula-3/ch1/src/m3makefile @@ -0,0 +1,4 @@ +import("libm3") +implementation("Ch1") +program("ch1") + diff --git a/challenge-243/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-243/deadmarshal/modula-3/ch2/src/Ch2.m3 new file mode 100644 index 0000000000..5dd6e21864 --- /dev/null +++ b/challenge-243/deadmarshal/modula-3/ch2/src/Ch2.m3 @@ -0,0 +1,22 @@ +MODULE Ch2 EXPORTS Main; + +IMPORT IO; + +VAR + A1:ARRAY[0..2] OF INTEGER := ARRAY OF INTEGER{2,5,9}; + A2:ARRAY[0..6] OF INTEGER := ARRAY OF INTEGER{7,7,7,7,7,7,7}; + +PROCEDURE FloorSum(VAR Arr:ARRAY OF INTEGER):INTEGER = + VAR Sum:INTEGER := 0; + BEGIN + FOR I := FIRST(Arr) TO LAST(Arr) DO + FOR J := FIRST(Arr) TO LAST(Arr) DO INC(Sum,Arr[I] DIV Arr[J]) END + END; + RETURN Sum + END FloorSum; + +BEGIN + IO.PutInt(FloorSum(A1)); IO.Put("\n"); + IO.PutInt(FloorSum(A2)); IO.Put("\n"); +END Ch2. + diff --git a/challenge-243/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-243/deadmarshal/modula-3/ch2/src/m3makefile new file mode 100644 index 0000000000..5c32bbc4bb --- /dev/null +++ b/challenge-243/deadmarshal/modula-3/ch2/src/m3makefile @@ -0,0 +1,4 @@ +import("libm3") +implementation("Ch2") +program("ch2") + diff --git a/challenge-243/deadmarshal/oberon/Ch1.Mod b/challenge-243/deadmarshal/oberon/Ch1.Mod new file mode 100644 index 0000000000..16bd614922 --- /dev/null +++ b/challenge-243/deadmarshal/oberon/Ch1.Mod @@ -0,0 +1,31 @@ +MODULE Ch1; + + IMPORT Out; + + VAR + A1,A2:ARRAY 5 OF LONGINT; + + PROCEDURE Init; + BEGIN + A1[0] := 1; A1[1] := 3; A1[2] := 2; A1[3] := 3; A1[4] := 1; + A2[0] := 2; A2[1] := 4; A2[2] := 3; A2[3] := 5; A2[4] := 1; + END Init; + + PROCEDURE ReversePairs(VAR arr:ARRAY OF LONGINT):LONGINT; + VAR i,j,count:LONGINT; + BEGIN + count := 0; + FOR i := 0 TO LEN(arr)-2 DO + FOR j := i+1 TO LEN(arr)-1 DO + IF arr[i] > (2 * arr[j]) THEN INC(count) END + END + END; + RETURN count + END ReversePairs; + +BEGIN + Init; + Out.Int(ReversePairs(A1),0); Out.Ln; + Out.Int(ReversePairs(A2),0); Out.Ln; +END Ch1. + diff --git a/challenge-243/deadmarshal/oberon/Ch2.Mod b/challenge-243/deadmarshal/oberon/Ch2.Mod new file mode 100644 index 0000000000..fb28efb103 --- /dev/null +++ b/challenge-243/deadmarshal/oberon/Ch2.Mod @@ -0,0 +1,32 @@ +MODULE Ch2; + + IMPORT Out; + + VAR + A1:ARRAY 3 OF LONGINT; + A2:ARRAY 7 OF LONGINT; + + PROCEDURE Init; + BEGIN + A1[0] := 2; A1[1] := 5; A1[2] := 9; + A2[0] := 7; A2[1] := 7; A2[2] := 7; + A2[3] := 7; A2[4] := 7; A2[5] := 7; + A2[6] := 7; + END Init; + + PROCEDURE FloorSum(VAR arr:ARRAY OF LONGINT):LONGINT; + VAR i,j,sum:LONGINT; + BEGIN + sum := 0; + FOR i := 0 TO LEN(arr)-1 DO + FOR j := 0 TO LEN(arr)-1 DO INC(sum,arr[i] DIV arr[j]) END + END; + RETURN sum + END FloorSum; + +BEGIN + Init; + Out.Int(FloorSum(A1),0); Out.Ln; + Out.Int(FloorSum(A2),0); Out.Ln +END Ch2. + diff --git a/challenge-243/deadmarshal/pascal/ch1.pas b/challenge-243/deadmarshal/pascal/ch1.pas new file mode 100644 index 0000000000..bd84bf950b --- /dev/null +++ b/challenge-243/deadmarshal/pascal/ch1.pas @@ -0,0 +1,26 @@ +program Ch1; + +{$mode objfpc} +uses + SysUtils,Types; + +var + A1,A2:TIntegerDynArray; + +function ReversePairs(var Arr:TIntegerDynArray):Integer; +var + I,J:Integer; +begin + Result := 0; + for I := Low(Arr) to High(Arr)-1 do + for J := I+1 to High(Arr) do + if Arr[I] > (2 * Arr[J]) then Inc(Result); +end; + +begin + A1 := [1,3,2,3,1]; + A2 := [2,4,3,5,1]; + WriteLn(ReversePairs(A1)); + WriteLn(ReversePairs(A2)); +end. + diff --git a/challenge-243/deadmarshal/pascal/ch2.pas b/challenge-243/deadmarshal/pascal/ch2.pas new file mode 100644 index 0000000000..14e14f4831 --- /dev/null +++ b/challenge-243/deadmarshal/pascal/ch2.pas @@ -0,0 +1,26 @@ +program Ch2; + +{$mode objfpc} +uses + SysUtils,Types; + +var + A1,A2:TIntegerDynArray; + +function FloorSum(var Arr:TIntegerDynArray):Integer; +var + I,J:Integer; +begin + Result := 0; + for I := Low(Arr) to High(Arr) do + for J := Low(Arr) to High(Arr) do + Inc(Result,Arr[I] div Arr[J]) +end; + +begin + A1 := [2,5,9]; + A2 := [7,7,7,7,7,7,7]; + WriteLn(FloorSum(A1)); + WriteLn(FloorSum(A2)); +end. + diff --git a/challenge-243/deadmarshal/ruby/ch1.rb b/challenge-243/deadmarshal/ruby/ch1.rb new file mode 100644 index 0000000000..cfc0a26c39 --- /dev/null +++ b/challenge-243/deadmarshal/ruby/ch1.rb @@ -0,0 +1,15 @@ +#!/usr/bin/env ruby + +def reverse_pairs(arr) + count = 0 + (0...arr.length-1).each do |i| + (i+1...arr.length).each do |j| + count += 1 if arr[i] > (2 * arr[j]) + end + end + return count +end + +p reverse_pairs([1,3,2,3,1]) +p reverse_pairs([2,4,3,5,1]) + diff --git a/challenge-243/deadmarshal/ruby/ch2.rb b/challenge-243/deadmarshal/ruby/ch2.rb new file mode 100644 index 0000000000..8f6fd403ef --- /dev/null +++ b/challenge-243/deadmarshal/ruby/ch2.rb @@ -0,0 +1,15 @@ +#!/usr/bin/env ruby + +def floor_sum(arr) + sum = 0 + (0...arr.length).each do |i| + (0...arr.length).each do |j| + sum += (arr[i] / arr[j]) + end + end + return sum +end + +p floor_sum([2,5,9]) +p floor_sum([7,7,7,7,7,7,7]) + diff --git a/challenge-243/deadmarshal/zig/ch1.zig b/challenge-243/deadmarshal/zig/ch1.zig new file mode 100644 index 0000000000..641573f50f --- /dev/null +++ b/challenge-243/deadmarshal/zig/ch1.zig @@ -0,0 +1,19 @@ +const std = @import("std"); + +fn reverse_pairs(arr:[]const u8) u8 { + var count:u8 = 0; + for(0..arr.len-1) |i| { + for(i+1..arr.len) |j| { + if(arr[i] > (2 * arr[j])) count += 1; + } + } + return count; +} + +pub fn main() !void { + const arr1:[5]u8 = .{1,3,2,3,1}; + const arr2:[5]u8 = .{2,4,3,5,1}; + std.debug.print("{}\n",.{reverse_pairs(&arr1)}); + std.debug.print("{}\n",.{reverse_pairs(&arr2)}); +} + diff --git a/challenge-243/deadmarshal/zig/ch2.zig b/challenge-243/deadmarshal/zig/ch2.zig new file mode 100644 index 0000000000..938c3ac00d --- /dev/null +++ b/challenge-243/deadmarshal/zig/ch2.zig @@ -0,0 +1,19 @@ +const std = @import("std"); + +fn floor_sum(arr:[]const u8) u8 { + var sum:u8 = 0; + for(0..arr.len) |i| { + for(0..arr.len) |j| { + sum += arr[i] / arr[j]; + } + } + return sum; +} + +pub fn main() !void { + const arr1:[3]u8 = .{2,5,9}; + const arr2:[7]u8 = .{7,7,7,7,7,7,7}; + std.debug.print("{}\n",.{floor_sum(&arr1)}); + std.debug.print("{}\n",.{floor_sum(&arr2)}); +} + |
