This commit is contained in:
2021-12-03 14:33:25 +01:00
parent 7c83ff9e7e
commit b8329f2c1a
4 changed files with 1083 additions and 1 deletions

66
3.py Normal file
View File

@@ -0,0 +1,66 @@
import sys
bitstrings = []
for x in sys.stdin:
bitstrings.append(x.rstrip())
transposed_bits = zip(*bitstrings)
gamma_bit = ""
epsilon_bit = ""
for bit in transposed_bits:
if bit.count("0") > len(bit) // 2:
gamma_bit += "0"
epsilon_bit += "1"
else:
gamma_bit += "1"
epsilon_bit += "0"
gamma = int(gamma_bit, base=2)
epsilon = int(epsilon_bit, base=2)
print("a:", gamma * epsilon)
remaining = bitstrings
current_bit = 0
while len(remaining) > 1:
zipped = list(zip(*remaining))
common_value = (
"1" if zipped[current_bit].count("1") >= zipped[current_bit].count("0") else "0"
)
new_bits = []
for bits in remaining:
if bits[current_bit] == common_value:
new_bits.append(bits)
remaining = new_bits
current_bit += 1
ox_rating = int(remaining[0], base=2)
remaining = bitstrings
current_bit = 0
while len(remaining) > 1:
zipped = list(zip(*remaining))
least_common_value = (
"0" if zipped[current_bit].count("1") >= zipped[current_bit].count("0") else "1"
)
new_bits = []
for bits in remaining:
if bits[current_bit] == least_common_value:
new_bits.append(bits)
remaining = new_bits
current_bit += 1
co2_rating = int(remaining[0], base=2)
print("b:", ox_rating * co2_rating)

View File

@@ -7,5 +7,9 @@
import Foundation import Foundation
print("Hello, World!") let fileContent = try! String(contentsOfFile: CommandLine.arguments[1])
for line in fileContent.trimmingCharacters(in: .newlines).components(separatedBy: .newlines) {
}

12
ex3.in Normal file
View File

@@ -0,0 +1,12 @@
00100
11110
10110
10111
10101
01111
00111
11100
10000
11001
00010
01010

1000
input3.in Normal file

File diff suppressed because it is too large Load Diff