In [2]:
using Random
Random.seed!(42)
"Andi Kerstin Chris Caro Jana" |> split |> shuffle |> x -> join(x," → ")
Out[2]:
"Andi → Chris → Caro → Kerstin → Jana"
In [3]:
using DelimitedFiles
[ Info: Precompiling DelimitedFiles [8bb1440f-4735-579b-a4ab-409b98df4dab]
In [40]:
rules=readdlm("input", '|')[1:1176,:]
Out[40]:
1176×2 Matrix{Any}: 57 24 64 37 64 45 19 47 19 45 19 95 98 57 98 37 98 34 98 87 96 87 96 74 96 37 ⋮ 22 62 22 97 93 55 93 75 93 47 93 48 44 78 44 27 44 99 81 54 81 19 87 64
In [39]:
data=readdlm("input", ',')[1177:end,:]
Out[39]:
223×23 Matrix{Any}: 13 19 52 14 65 96 62 98 … "" "" "" "" "" "" 26 11 93 84 95 45 63 89 "" "" "" "" "" "" 97 57 95 26 73 34 81 91 "" "" "" "" "" "" 74 91 42 62 87 27 53 98 26 34 "" "" "" "" 87 55 94 65 91 98 44 14 "" "" "" "" "" "" 26 95 84 93 68 48 35 76 … 69 65 14 52 13 22 67 91 62 92 64 37 19 26 "" "" "" "" "" "" 95 38 94 89 69 13 44 "" "" "" "" "" "" "" 76 47 38 11 94 24 89 55 98 73 81 87 "" "" 19 97 92 64 57 74 37 63 38 11 "" "" "" "" 74 62 37 67 92 38 34 57 … "" "" "" "" "" "" 65 42 58 73 97 92 53 54 "" "" "" "" "" "" 87 91 58 53 99 62 19 97 "" "" "" "" "" "" ⋮ ⋮ ⋱ ⋮ 73 89 13 44 14 47 76 75 94 81 96 98 "" "" 84 93 48 76 45 47 38 11 22 44 "" "" "" "" 97 54 87 19 91 75 69 99 "" "" "" "" "" "" 24 69 87 78 55 13 58 22 "" "" "" "" "" "" 62 19 74 27 95 84 38 "" … "" "" "" "" "" "" 58 99 62 54 97 92 64 57 48 76 "" "" "" "" 14 13 22 87 42 58 53 62 "" "" "" "" "" "" 48 97 26 38 84 34 27 63 45 68 "" "" "" "" 27 69 75 76 12 95 47 68 14 34 24 48 "" "" 87 52 55 14 13 47 94 24 … 98 73 75 22 12 44 52 13 73 87 91 54 19 97 "" "" "" "" "" "" 34 67 27 95 84 93 48 45 "" "" "" "" "" ""
In [46]:
data2 = Vector{Vector{Int64}}(undef, 223)
for i in 1:223
data2[i] = data[i, typeof.(data[i, :]) .== Int64]
end
data = data2
Out[46]:
223-element Vector{Vector{Int64}}: [13, 19, 52, 14, 65, 96, 62, 98, 58, 73, 97, 92, 91, 87, 44, 54, 42] [26, 11, 93, 84, 95, 45, 63, 89, 27, 65, 55] [97, 57, 95, 26, 73, 34, 81, 91, 54, 64, 74] [74, 91, 42, 62, 87, 27, 53, 98, 81, 92, 97, 99, 54, 63, 57, 67, 96, 26, 34] [87, 55, 94, 65, 91, 98, 44, 14, 69, 78, 75, 47, 45, 89, 81] [26, 95, 84, 93, 68, 48, 35, 76, 47, 38 … 89, 55, 12, 75, 69, 65, 14, 52, 13, 22] [67, 91, 62, 92, 64, 37, 19, 26, 58, 81, 54, 96, 98] [95, 38, 94, 89, 69, 13, 44] [76, 47, 38, 11, 94, 24, 89, 55, 12, 75 … 65, 14, 13, 22, 78, 96, 98, 73, 81, 87] [19, 97, 92, 64, 57, 74, 37, 63, 67, 27, 26, 95, 84, 93, 68, 48, 45, 38, 11] [74, 62, 37, 67, 92, 38, 34, 57, 93] [65, 42, 58, 73, 97, 92, 53, 54, 87, 57, 22, 98, 78, 81, 52, 96, 14] [87, 91, 58, 53, 99, 62, 19, 97, 64, 74, 37, 63, 34, 67, 95, 93, 68] ⋮ [73, 89, 13, 44, 14, 47, 76, 75, 65, 45 … 52, 24, 69, 78, 35, 11, 94, 81, 96, 98] [84, 93, 48, 76, 45, 47, 38, 11, 94, 24, 89, 55, 12, 69, 65, 14, 13, 22, 44] [97, 54, 87, 19, 91, 75, 69, 99, 52, 96, 12, 13, 73, 62, 65] [24, 69, 87, 78, 55, 13, 58, 22, 11, 96, 12, 65, 52, 89, 38] [62, 19, 74, 27, 95, 84, 38] [58, 99, 62, 54, 97, 92, 64, 57, 74, 63, 34, 67, 27, 95, 84, 93, 68, 48, 76] [14, 13, 22, 87, 42, 58, 53, 62, 54, 97, 92, 57, 74] [48, 97, 26, 38, 84, 34, 27, 63, 94, 95, 57, 93, 76, 35, 64, 37, 19, 45, 68] [27, 69, 75, 76, 12, 95, 47, 68, 67, 45 … 55, 38, 35, 93, 94, 84, 14, 34, 24, 48] [87, 52, 55, 14, 13, 47, 94, 24, 69, 65 … 45, 38, 89, 81, 98, 73, 75, 22, 12, 44] [52, 13, 73, 87, 91, 54, 19, 97, 37] [34, 67, 27, 95, 84, 93, 48, 45, 38, 11, 94, 12, 75, 65, 14]
In [60]:
filtered = Vector{Vector{Int64}}()
for list in data
passed = true
for row in 1:size(rules)[1]
if !(rules[row,1] in list && rules[row,2] in list)
continue
end
pos1 = findfirst(list .== rules[row, 1])
pos2 = findfirst(list .== rules[row, 2])
if pos1 > pos2
passed = false
break
end
end
if passed
push!(filtered, list)
end
end
In [74]:
count = 0
for list in filtered
count += list[Int(length(list)/2 +0.5)]
end
count
Out[74]:
6505
In [0]: