aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordeadmarshal <adeadmarshal@gmail.com>2022-12-15 10:13:05 +0330
committerdeadmarshal <adeadmarshal@gmail.com>2022-12-15 10:13:05 +0330
commitaecf51b43cf11e2d592fdfa86282d642e716d9a8 (patch)
treef889a3d22fafcf14022690432b43be08bee43b3c
parentc1d3932971f399789d4ee01cb886bb1e984f2563 (diff)
downloadperlweeklychallenge-club-aecf51b43cf11e2d592fdfa86282d642e716d9a8.tar.gz
perlweeklychallenge-club-aecf51b43cf11e2d592fdfa86282d642e716d9a8.tar.bz2
perlweeklychallenge-club-aecf51b43cf11e2d592fdfa86282d642e716d9a8.zip
TWC195
-rw-r--r--challenge-195/deadmarshal/c/ch-1.c29
-rw-r--r--challenge-195/deadmarshal/c/ch-2.c31
-rw-r--r--challenge-195/deadmarshal/cpp/ch-1.cpp35
-rw-r--r--challenge-195/deadmarshal/cpp/ch-2.cpp36
-rw-r--r--challenge-195/deadmarshal/d/ch1.d27
-rw-r--r--challenge-195/deadmarshal/d/ch2.d24
-rw-r--r--challenge-195/deadmarshal/lua/ch-1.lua26
-rw-r--r--challenge-195/deadmarshal/lua/ch-2.lua38
-rw-r--r--challenge-195/deadmarshal/modula-3/ch1/src/Ch1.m330
-rw-r--r--challenge-195/deadmarshal/modula-3/ch1/src/m3makefile3
-rw-r--r--challenge-195/deadmarshal/modula-3/ch2/src/Ch2.m344
-rw-r--r--challenge-195/deadmarshal/modula-3/ch2/src/m3makefile3
-rw-r--r--challenge-195/deadmarshal/nim/ch1.nim16
-rw-r--r--challenge-195/deadmarshal/nim/ch2.nim13
-rw-r--r--challenge-195/deadmarshal/oberon/Ch1.Mod32
-rw-r--r--challenge-195/deadmarshal/oberon/Ch2.Mod53
-rw-r--r--challenge-195/deadmarshal/pascal/ch1.pas34
-rw-r--r--challenge-195/deadmarshal/pascal/ch2.pas40
-rw-r--r--challenge-195/deadmarshal/perl/ch-1.pl17
-rw-r--r--challenge-195/deadmarshal/perl/ch-2.pl19
-rw-r--r--challenge-195/deadmarshal/python/ch1.py10
-rw-r--r--challenge-195/deadmarshal/python/ch2.py14
-rw-r--r--challenge-195/deadmarshal/raku/ch-1.raku10
-rw-r--r--challenge-195/deadmarshal/raku/ch-2.raku13
24 files changed, 597 insertions, 0 deletions
diff --git a/challenge-195/deadmarshal/c/ch-1.c b/challenge-195/deadmarshal/c/ch-1.c
new file mode 100644
index 0000000000..34812b8140
--- /dev/null
+++ b/challenge-195/deadmarshal/c/ch-1.c
@@ -0,0 +1,29 @@
+#include<stdio.h>
+
+int has_dups(int n)
+{
+ int hash[10] = {0};
+ if(n > 9999999999) return 1;
+ while(n)
+ {
+ if(hash[n%10]) return 1;
+ hash[n%10] = 1;
+ n /= 10;
+ }
+ return 0;
+}
+
+int special_integers(int n)
+{
+ int count = 0;
+ for(int i = 1; i <= n; ++i) if(!has_dups(i)) count++;
+ return count;
+}
+
+int main()
+{
+ printf("%d\n",special_integers(15));
+ printf("%d\n",special_integers(35));
+ return 0;
+}
+
diff --git a/challenge-195/deadmarshal/c/ch-2.c b/challenge-195/deadmarshal/c/ch-2.c
new file mode 100644
index 0000000000..9da6fa2a31
--- /dev/null
+++ b/challenge-195/deadmarshal/c/ch-2.c
@@ -0,0 +1,31 @@
+#include<stdio.h>
+
+int all_odd(int *arr, size_t sz)
+{
+ for(size_t i = 0; i < sz; ++i) if(arr[i] % 2 == 0) return 0;
+ return 1;
+}
+
+int most_frequent_even(int *arr, size_t sz)
+{
+#define N 10
+ if(all_odd(arr,sz)) return -1;
+ int counts[N] = {0};
+ for(size_t i = 0; i < sz; ++i) if(arr[i] % 2 == 0) counts[arr[i]]++;
+ int maxkey = counts[0];
+ for(size_t i = 1; i < N; ++i)
+ if(counts[i] > maxkey) maxkey = i;
+ return maxkey;
+}
+
+int main(void)
+{
+ int a1[] = {1,1,2,6,2};
+ int a2[] = {1,3,5,7};
+ int a3[] = {6,4,4,6,1};
+ printf("%d\n", most_frequent_even(a1,5));
+ printf("%d\n", most_frequent_even(a2,4));
+ printf("%d\n", most_frequent_even(a3,5));
+ return 0;
+}
+
diff --git a/challenge-195/deadmarshal/cpp/ch-1.cpp b/challenge-195/deadmarshal/cpp/ch-1.cpp
new file mode 100644
index 0000000000..c2efa674ec
--- /dev/null
+++ b/challenge-195/deadmarshal/cpp/ch-1.cpp
@@ -0,0 +1,35 @@
+#include<iostream>
+#include<vector>
+#include<algorithm>
+
+std::vector<int> dtov(int n)
+{
+ std::vector<int> digits{};
+ while(n)
+ {
+ digits.push_back(n % 10);
+ n /= 10;
+ }
+ return digits;
+}
+
+int special_integers(int n)
+{
+ int count{};
+ for(int i = 1; i <= n; ++i)
+ {
+ std::vector<int> digits = dtov(i);
+ const bool has_dups =
+ std::adjacent_find(digits.begin(), digits.end()) != digits.end();
+ if(!has_dups) count++;
+ }
+ return count;
+}
+
+int main()
+{
+ std::cout << special_integers(15) << '\n';
+ std::cout << special_integers(35) << '\n';
+ return 0;
+}
+
diff --git a/challenge-195/deadmarshal/cpp/ch-2.cpp b/challenge-195/deadmarshal/cpp/ch-2.cpp
new file mode 100644
index 0000000000..610a1bdf62
--- /dev/null
+++ b/challenge-195/deadmarshal/cpp/ch-2.cpp
@@ -0,0 +1,36 @@
+#include<iostream>
+#include<vector>
+#include<map>
+#include<algorithm>
+
+int most_frequent_even(std::vector<int> vec)
+{
+ if(std::all_of(vec.begin(),
+ vec.end(),
+ [](int i){return i % 2 != 0;})) return -1;
+ vec.erase(std::remove_if(vec.begin(),
+ vec.end(),
+ [](int i){return i % 2 != 0;}),
+ vec.end());
+ std::map<int,int,std::greater<int>> map{};
+ std::vector<int> keys{},vals{};
+ for(const auto& i : vec) map[i]++;
+ for(const auto& kv : map)
+ {
+ keys.push_back(kv.first);
+ vals.push_back(kv.second);
+ }
+ const bool has_dups =
+ std::adjacent_find(vals.begin(), vals.end()) != vals.end();
+ if(!has_dups) return keys.back();
+ return keys.back();
+}
+
+int main()
+{
+ std::cout << most_frequent_even({1,1,2,6,2}) << '\n';
+ std::cout << most_frequent_even({1,3,5,7}) << '\n';
+ std::cout << most_frequent_even({6,4,4,6,1}) << '\n';
+ return 0;
+}
+
diff --git a/challenge-195/deadmarshal/d/ch1.d b/challenge-195/deadmarshal/d/ch1.d
new file mode 100644
index 0000000000..b1c6252960
--- /dev/null
+++ b/challenge-195/deadmarshal/d/ch1.d
@@ -0,0 +1,27 @@
+import std.stdio:writeln;
+
+bool has_dups(int n)
+{
+ int[int] hash;
+ while(n)
+ {
+ if(hash.require(n%10,0)) return true;
+ hash[n%10] = 1;
+ n /= 10;
+ }
+ return false;
+}
+
+int special_integers(int n)
+{
+ int count = 0;
+ for(int i = 1; i <= n; ++i) if(!has_dups(i)) count++;
+ return count;
+}
+
+void main()
+{
+ writeln(special_integers(15));
+ writeln(special_integers(35));
+}
+
diff --git a/challenge-195/deadmarshal/d/ch2.d b/challenge-195/deadmarshal/d/ch2.d
new file mode 100644
index 0000000000..b80f690abc
--- /dev/null
+++ b/challenge-195/deadmarshal/d/ch2.d
@@ -0,0 +1,24 @@
+import std.stdio:writeln;
+import std.algorithm:all,filter,reduce,uniq,minElement,sort;
+import std.array:array;
+
+int most_frequent_even(int[] arr)
+{
+ if(all!"a & 1"(arr)) return -1;
+ int[int] hash;
+ foreach(int i; filter!(a => !(a & 1))(arr)) if(!(i & 1)) hash[i]++;
+ if(hash.values.length == hash.values.uniq.array.length)
+ return hash.keys.minElement;
+ return reduce!((a,b) => hash[a] == hash[b] ? a : b)(hash.keys.sort);
+}
+
+void main()
+{
+ int[] a1 = [1,1,2,6,2];
+ int[] a2 = [1,3,5,7];
+ int[] a3 = [6,4,4,6,1];
+ writeln(most_frequent_even(a1));
+ writeln(most_frequent_even(a2));
+ writeln(most_frequent_even(a3));
+}
+
diff --git a/challenge-195/deadmarshal/lua/ch-1.lua b/challenge-195/deadmarshal/lua/ch-1.lua
new file mode 100644
index 0000000000..e2b7dfcf00
--- /dev/null
+++ b/challenge-195/deadmarshal/lua/ch-1.lua
@@ -0,0 +1,26 @@
+#!/usr/bin/env lua
+
+local function has_dups(n)
+ assert(type(n) == 'number','n must be a number!')
+ if n > 9999999999 then return true end
+ local hash = {}
+ while n ~= 0 do
+ if(hash[n%10] ~= nil) then return true end
+ hash[n%10] = 1
+ n = n // 10
+ end
+ return false
+end
+
+local function special_integers(n)
+ assert(type(n) == 'number','n must be a number!')
+ local count = 0
+ for i=1, n do
+ if not has_dups(i) then count = count + 1 end
+ end
+ return count
+end
+
+print(special_integers(15))
+print(special_integers(35))
+
diff --git a/challenge-195/deadmarshal/lua/ch-2.lua b/challenge-195/deadmarshal/lua/ch-2.lua
new file mode 100644
index 0000000000..94a2ee7c4a
--- /dev/null
+++ b/challenge-195/deadmarshal/lua/ch-2.lua
@@ -0,0 +1,38 @@
+#!/usr/bin/env lua
+-- luarocks install stdlib
+local std = require'std'
+
+local function is_uniq(t)
+ for i=1, #t do
+ for j=i+1, #t do
+ if t[i] == t[j] then return false end
+ end
+ end
+ return true
+end
+
+local function most_frequent_even(t)
+ if #std.functional.filter(std.functional.lambda('|e| e % 2 ~= 0'),
+ std.elems,t) == #t then
+ return -1
+ end
+ t = std.functional.filter(std.functional.lambda('|e| e % 2 == 0'),
+ std.elems,t)
+ local hash = {}
+ setmetatable(hash,{__index = function(t,k) return 0 end})
+ for i=1,#t do hash[t[i]] = hash[t[i]] + 1 end
+ if is_uniq(std.table.values(hash)) then
+ return math.min(std.table.unpack(std.table.keys(hash)))
+ end
+ local sorted = std.table.okeys(hash)
+ for i=1,#sorted-1 do
+ if hash[sorted[i]] == hash[sorted[i+1]] then
+ return sorted[i]
+ end
+ end
+end
+
+print(most_frequent_even({1,1,2,6,2}))
+print(most_frequent_even({1,3,5,7}))
+print(most_frequent_even({6,4,4,6,1}))
+
diff --git a/challenge-195/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-195/deadmarshal/modula-3/ch1/src/Ch1.m3
new file mode 100644
index 0000000000..7eefc20e96
--- /dev/null
+++ b/challenge-195/deadmarshal/modula-3/ch1/src/Ch1.m3
@@ -0,0 +1,30 @@
+MODULE Ch1 EXPORTS Main;
+
+IMPORT IO;
+
+PROCEDURE HasDups(N:INTEGER):BOOLEAN =
+ VAR
+ Hash := ARRAY[0..9] OF INTEGER{0,..};
+ BEGIN
+ IF N > 9999999999 THEN RETURN TRUE END;
+ WHILE N # 0 DO
+ IF Hash[N MOD 10] # 0 THEN RETURN TRUE END;
+ Hash[N MOD 10] := 1;
+ N := N DIV 10;
+ END;
+ RETURN FALSE;
+ END HasDups;
+
+PROCEDURE SpecialIntegers(N:INTEGER):INTEGER =
+ VAR Count:INTEGER;
+ BEGIN
+ Count := 0;
+ FOR I := 1 TO N DO IF NOT HasDups(I) THEN INC(Count) END END;
+ RETURN Count;
+ END SpecialIntegers;
+
+BEGIN
+ IO.PutInt(SpecialIntegers(15)); IO.Put("\n");
+ IO.PutInt(SpecialIntegers(35)); IO.Put("\n");
+END Ch1.
+
diff --git a/challenge-195/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-195/deadmarshal/modula-3/ch1/src/m3makefile
new file mode 100644
index 0000000000..8a6bc1e4f8
--- /dev/null
+++ b/challenge-195/deadmarshal/modula-3/ch1/src/m3makefile
@@ -0,0 +1,3 @@
+import("libm3")
+implementation("Ch1")
+program("ch1")
diff --git a/challenge-195/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-195/deadmarshal/modula-3/ch2/src/Ch2.m3
new file mode 100644
index 0000000000..08887daf99
--- /dev/null
+++ b/challenge-195/deadmarshal/modula-3/ch2/src/Ch2.m3
@@ -0,0 +1,44 @@
+MODULE Ch2 EXPORTS Main;
+
+IMPORT IO;
+
+VAR
+ A1:ARRAY[0..4] OF INTEGER := ARRAY OF INTEGER{1,1,2,6,2};
+ A2:ARRAY[0..3] OF INTEGER := ARRAY OF INTEGER{1,3,5,7};
+ A3:ARRAY[0..4] OF INTEGER := ARRAY OF INTEGER{6,4,4,6,1};
+
+PROCEDURE AllOdd(VAR Arr:ARRAY OF INTEGER):BOOLEAN =
+ BEGIN
+ FOR I := FIRST(Arr) TO LAST(Arr) DO
+ IF Arr[I] MOD 2 = 0 THEN RETURN FALSE END;
+ END;
+ RETURN TRUE;
+ END AllOdd;
+
+PROCEDURE MostFrequentEven(VAR Arr:ARRAY OF INTEGER):INTEGER =
+ VAR
+ MaxKey:INTEGER;
+ Counts:ARRAY[0..9] OF INTEGER;
+ BEGIN
+ IF AllOdd(Arr) THEN RETURN -1 END;
+ FOR I := FIRST(Counts) TO LAST(Counts) DO Counts[I] := 0 END;
+ FOR I := FIRST(Arr) TO LAST(Arr) DO
+ IF Arr[I] MOD 2 = 0 THEN
+ INC(Counts[Arr[I]])
+ END
+ END;
+ MaxKey := Counts[0];
+ FOR I := 1 TO LAST(Counts) DO
+ IF Counts[I] > MaxKey THEN
+ MaxKey := I
+ END
+ END;
+ RETURN MaxKey;
+ END MostFrequentEven;
+
+BEGIN
+ IO.PutInt(MostFrequentEven(A1)); IO.Put("\n");
+ IO.PutInt(MostFrequentEven(A2)); IO.Put("\n");
+ IO.PutInt(MostFrequentEven(A3)); IO.Put("\n");
+END Ch2.
+
diff --git a/challenge-195/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-195/deadmarshal/modula-3/ch2/src/m3makefile
new file mode 100644
index 0000000000..4bfbb7373d
--- /dev/null
+++ b/challenge-195/deadmarshal/modula-3/ch2/src/m3makefile
@@ -0,0 +1,3 @@
+import("libm3")
+implementation("Ch2")
+program("ch2")
diff --git a/challenge-195/deadmarshal/nim/ch1.nim b/challenge-195/deadmarshal/nim/ch1.nim
new file mode 100644
index 0000000000..0696bd476a
--- /dev/null
+++ b/challenge-195/deadmarshal/nim/ch1.nim
@@ -0,0 +1,16 @@
+import std/sequtils
+
+proc intToSeq(n:int):seq[int] =
+ var cp = n
+ while cp != 0:
+ result.add(cp mod 10)
+ cp = cp div 10
+
+proc specialIntegers(n:int):int =
+ for i in 1..n:
+ let digits = intToSeq(i)
+ if digits.len == deduplicate(digits).len: result += 1
+
+echo specialIntegers(15)
+echo specialIntegers(35)
+
diff --git a/challenge-195/deadmarshal/nim/ch2.nim b/challenge-195/deadmarshal/nim/ch2.nim
new file mode 100644
index 0000000000..0a77a29286
--- /dev/null
+++ b/challenge-195/deadmarshal/nim/ch2.nim
@@ -0,0 +1,13 @@
+import std/[sequtils,tables]
+
+proc mostFrequentEven(s:seq[int]):int =
+ var t = toCountTable(s.filterIt(it mod 2 == 0))
+ if all(s,proc(x:int):bool = x mod 2 != 0): return -1
+ if toSeq(t.values).len == toSeq(t.values).deduplicate.len:
+ return min(toSeq(t.keys))
+ return foldl(toSeq(t.keys), (if t[a] == t[b]: a else: b))
+
+echo mostFrequentEven(@[1,1,2,6,2])
+echo mostFrequentEven(@[1,3,5,7])
+echo mostFrequentEven(@[6,4,4,6,1])
+
diff --git a/challenge-195/deadmarshal/oberon/Ch1.Mod b/challenge-195/deadmarshal/oberon/Ch1.Mod
new file mode 100644
index 0000000000..acb5e10420
--- /dev/null
+++ b/challenge-195/deadmarshal/oberon/Ch1.Mod
@@ -0,0 +1,32 @@
+MODULE Ch1;
+
+ IMPORT Out;
+
+ PROCEDURE HasDups(N:INTEGER):BOOLEAN;
+ VAR
+ I:LONGINT;
+ Hash:ARRAY 10 OF INTEGER;
+ BEGIN
+ FOR I := 0 TO LEN(Hash)-1 DO Hash[I] := 0 END;
+ IF N > 9999999999 THEN RETURN TRUE END;
+ WHILE N # 0 DO
+ IF Hash[N MOD 10] # 0 THEN RETURN TRUE END;
+ Hash[N MOD 10] := 1;
+ N := N DIV 10;
+ END;
+ RETURN FALSE;
+ END HasDups;
+
+ PROCEDURE SpecialIntegers(N:INTEGER):INTEGER;
+ VAR I,Count:INTEGER;
+ BEGIN
+ Count := 0;
+ FOR I := 1 TO N DO IF ~HasDups(I) THEN INC(Count) END END;
+ RETURN Count;
+ END SpecialIntegers;
+
+BEGIN
+ Out.Int(SpecialIntegers(15),0); Out.Ln;
+ Out.Int(SpecialIntegers(35),0); Out.Ln;
+END Ch1.
+
diff --git a/challenge-195/deadmarshal/oberon/Ch2.Mod b/challenge-195/deadmarshal/oberon/Ch2.Mod
new file mode 100644
index 0000000000..551d88f301
--- /dev/null
+++ b/challenge-195/deadmarshal/oberon/Ch2.Mod
@@ -0,0 +1,53 @@
+MODULE Ch2;
+
+ IMPORT Out;
+
+ VAR
+ A1,A3:ARRAY 5 OF INTEGER;
+ A2:ARRAY 4 OF INTEGER;
+
+ PROCEDURE Init();
+ BEGIN
+ A1[0] := 1; A1[1] := 1; A1[2] := 2; A1[3] := 6; A1[4] := 2;
+ A2[0] := 1; A2[1] := 3; A2[2] := 5; A2[3] := 7;
+ A3[0] := 6; A3[1] := 4; A3[2] := 4; A3[3] := 6; A3[4] := 1;
+ END Init;
+
+ PROCEDURE AllOdd(VAR Arr:ARRAY OF INTEGER):BOOLEAN;
+ VAR I:LONGINT;
+ BEGIN
+ FOR I := 0 TO LEN(Arr)-1 DO
+ IF ~ODD(Arr[I]) THEN RETURN FALSE END
+ END;
+ RETURN TRUE;
+ END AllOdd;
+
+ PROCEDURE MostFrequentEven(VAR Arr:ARRAY OF INTEGER):INTEGER;
+ VAR
+ I,J:LONGINT;
+ Counts:ARRAY 10 OF INTEGER;
+ MaxKey:INTEGER;
+ BEGIN
+ IF AllOdd(Arr) THEN RETURN -1 END;
+ FOR I := 0 TO LEN(Counts)-1 DO Counts[I] := 0 END;
+ FOR I := 0 TO LEN(Arr)-1 DO
+ IF ~ODD(Arr[I]) THEN
+ INC(Counts[Arr[I]])
+ END
+ END;
+ MaxKey := Counts[0];
+ FOR I := 1 TO LEN(Counts)-1 DO
+ IF Counts[I] > MaxKey THEN
+ MaxKey := SHORT(I);
+ END
+ END;
+ RETURN MaxKey;
+ END MostFrequentEven;
+
+BEGIN
+ Init;
+ Out.Int(MostFrequentEven(A1),0); Out.Ln;
+ Out.Int(MostFrequentEven(A2),0); Out.Ln;
+ Out.Int(MostFrequentEven(A3),0); Out.Ln;
+END Ch2.
+
diff --git a/challenge-195/deadmarshal/pascal/ch1.pas b/challenge-195/deadmarshal/pascal/ch1.pas
new file mode 100644
index 0000000000..c8b2e1fd4c
--- /dev/null
+++ b/challenge-195/deadmarshal/pascal/ch1.pas
@@ -0,0 +1,34 @@
+program Ch1;
+
+{$mode objfpc}
+
+uses
+ SysUtils;
+
+function HasDups(N:Integer):Boolean;
+var
+ Hash:array[0..9] of Integer;
+begin
+ FillDWord(Hash,Length(Hash),0);
+ while N <> 0 do
+ begin
+ if Hash[N mod 10] <> 0 then Exit(True);
+ Hash[N mod 10] := 1;
+ N := N div 10;
+ end;
+ Exit(False);
+end;
+
+function SpecialIntegers(N:Integer):Integer;
+var
+ I:Integer;
+begin
+ Result := 0;
+ for I := 1 to N do if not(HasDups(I)) then Inc(Result);
+end;
+
+begin
+ WriteLn(SpecialIntegers(15));
+ WriteLn(SpecialIntegers(35));
+end.
+
diff --git a/challenge-195/deadmarshal/pascal/ch2.pas b/challenge-195/deadmarshal/pascal/ch2.pas
new file mode 100644
index 0000000000..5717b30980
--- /dev/null
+++ b/challenge-195/deadmarshal/pascal/ch2.pas
@@ -0,0 +1,40 @@
+program Ch2;
+
+{$mode objfpc}
+
+uses
+ SysUtils,Types;
+
+type
+ TFunc = function(N:Integer):Boolean;
+
+function All(F:TFunc;Arr:TIntegerDynArray):Boolean;
+var
+ I:Integer;
+begin
+ for I := Low(Arr) to High(Arr) do
+ if not(F(Arr[I])) then Exit(False);
+ Exit(True);
+end;
+
+function MostFrequentEven(Arr:TIntegerDynArray):Integer;
+var
+ I,MaxKey:Integer;
+ Counts:array[0..9] of Integer;
+begin
+ if(All(@Odd,Arr)) then Exit(-1);
+ FillDWord(Counts,Length(Counts),0);
+ for I := Low(Arr) to High(Arr) do
+ if not Odd(Arr[I]) then Inc(Counts[Arr[I]]);
+ MaxKey := Counts[0];
+ for I := 1 to High(Counts) do
+ if Counts[I] > MaxKey then MaxKey := I;
+ Exit(MaxKey);
+end;
+
+begin
+ WriteLn(MostFrequentEven([1,1,2,6,2]));
+ WriteLn(MostFrequentEven([1,3,5,7]));
+ WriteLn(MostFrequentEven([6,4,4,6,1]));
+end.
+
diff --git a/challenge-195/deadmarshal/perl/ch-1.pl b/challenge-195/deadmarshal/perl/ch-1.pl
new file mode 100644
index 0000000000..a32afd9563
--- /dev/null
+++ b/challenge-195/deadmarshal/perl/ch-1.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use List::Util qw(uniq);
+
+sub special_integers{
+ my $count = 0;
+ foreach(1..$_[0]){
+ my @arr = split '',$_;
+ $count++ if @arr == uniq @arr;
+ }
+ $count;
+}
+
+printf "%d\n", special_integers(15);
+printf "%d\n", special_integers(35);
+
diff --git a/challenge-195/deadmarshal/perl/ch-2.pl b/challenge-195/deadmarshal/perl/ch-2.pl
new file mode 100644
index 0000000000..5c4aa786fb
--- /dev/null
+++ b/challenge-195/deadmarshal/perl/ch-2.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use List::Util qw(all min uniqint reduce);
+
+sub most_frequent_even{
+ my ($arr) = @_;
+ return -1 if all {$_ % 2 != 0} @$arr;
+ my %hash;
+ $hash{$_}++ foreach(grep {!($_ & 1)} @$arr);
+ return min keys %hash if((values %hash) == uniqint(values %hash));
+ return reduce {$hash{$a} == $hash{$b} ? $a : $b}
+ sort {$a <=> $b} keys %hash;
+}
+
+print most_frequent_even([1,1,2,6,2]), "\n";
+print most_frequent_even([1,3,5,7]), "\n";
+print most_frequent_even([6,4,4,6,1]), "\n";
+
diff --git a/challenge-195/deadmarshal/python/ch1.py b/challenge-195/deadmarshal/python/ch1.py
new file mode 100644
index 0000000000..b48d310af1
--- /dev/null
+++ b/challenge-195/deadmarshal/python/ch1.py
@@ -0,0 +1,10 @@
+def special_integers(n):
+ count = 0
+ for i in range(1,n+1):
+ digits = [int(x) for x in str(i)]
+ if len(digits) == len(set(digits)): count += 1
+ return count
+
+print(special_integers(15))
+print(special_integers(35))
+
diff --git a/challenge-195/deadmarshal/python/ch2.py b/challenge-195/deadmarshal/python/ch2.py
new file mode 100644
index 0000000000..783f93555b
--- /dev/null
+++ b/challenge-195/deadmarshal/python/ch2.py
@@ -0,0 +1,14 @@
+from functools import reduce
+
+def most_frequent_even(arr):
+ if all(map(lambda n: n % 2 != 0, arr)): return -1
+ d = {}
+ for i in arr:
+ if i % 2 == 0: d[i] = d.get(i, 0) + 1
+ if len(d.values()) == len(set(d.values())): return min(d)
+ return reduce(lambda a,b:a if d[a] > d[b] else b, d.keys())
+
+print(most_frequent_even([1,1,2,6,2]))
+print(most_frequent_even([1,3,5,7]))
+print(most_frequent_even([6,4,4,6,1]))
+
diff --git a/challenge-195/deadmarshal/raku/ch-1.raku b/challenge-195/deadmarshal/raku/ch-1.raku
new file mode 100644
index 0000000000..6adfef56c3
--- /dev/null
+++ b/challenge-195/deadmarshal/raku/ch-1.raku
@@ -0,0 +1,10 @@
+sub special-integers($n)
+{
+ my $count = 0;
+ $count++ if $_.comb.unique == $_.comb for 1..$n;
+ $count;
+}
+
+say special-integers(15);
+say special-integers(35);
+
diff --git a/challenge-195/deadmarshal/raku/ch-2.raku b/challenge-195/deadmarshal/raku/ch-2.raku
new file mode 100644
index 0000000000..6f4c349d1f
--- /dev/null
+++ b/challenge-195/deadmarshal/raku/ch-2.raku
@@ -0,0 +1,13 @@
+sub most-frequent-even(@arr)
+{
+ return -1 if @arr.none %% 2;
+ my %hash;
+ %hash{$_}++ for @arr.grep: * %% 2;
+ return %hash.keys.min if %hash.values == %hash.values.unique;
+ %hash.keys.sort.reduce: {%hash{$^a} == %hash{$^b} ?? $^a !! $^b};
+}
+
+say most-frequent-even([1,1,2,6,2]);
+say most-frequent-even([1,3,5,7]);
+say most-frequent-even([6,4,4,6,1]);
+