27 lines
501 B
Lua
Executable File
27 lines
501 B
Lua
Executable File
#!/usr/bin/env luajit
|
|
|
|
local ZERO = string.byte("0", 1)
|
|
local ONE = string.byte("1", 1)
|
|
local total = 0
|
|
local counts = {}
|
|
for line in io.lines(arg[3]) do
|
|
for char = 1, #line do
|
|
if line:byte(char) == ONE then
|
|
counts[char] = (counts[char] or 0) + 1
|
|
end
|
|
end
|
|
total = total + 1
|
|
end
|
|
|
|
local gamma, epsilon = 0, 0
|
|
for i, count in ipairs(counts) do
|
|
gamma, epsilon = gamma * 2, epsilon * 2
|
|
if count > total / 2 then
|
|
gamma = gamma + 1
|
|
else
|
|
epsilon = epsilon + 1
|
|
end
|
|
end
|
|
|
|
print(gamma * epsilon)
|