Update 2015 solutions

This commit is contained in:
2024-10-20 15:19:25 -04:00
parent 87ab42743e
commit e73fa3bae7
16 changed files with 362 additions and 411 deletions

View File

@@ -1,26 +1,25 @@
from lib import *
from lib import get_data
import re
data = open(0).read()
part_1 = False
data = get_data(__file__)
if part_1:
r1 = re.compile(r"\\x[0-9a-f][0-9a-f]")
r2 = re.compile(r"\\\\")
r3 = re.compile(r"\\\"")
r1 = re.compile(r"\\x[0-9a-f][0-9a-f]")
r2 = re.compile(r"\\\\")
r3 = re.compile(r"\\\"")
enc, mem = 0, 0
for line in data.splitlines():
mem += len(line)
line = r1.sub("^", line)
line = r2.sub("^", line)
line = r3.sub("^", line)
enc += len(line) - 2
print(mem - enc)
else:
ori, enc = 0, 0
for line in data.splitlines():
ori += len(line)
line = line.replace("\\", "\\\\")
line = line.replace("\"", "\\\"")
enc += len(line) + 2
print(enc - ori)
enc, mem = 0, 0
for line in data.splitlines():
mem += len(line)
line = r1.sub("^", line)
line = r2.sub("^", line)
line = r3.sub("^", line)
enc += len(line) - 2
print(mem - enc)
ori, enc = 0, 0
for line in data.splitlines():
ori += len(line)
line = line.replace("\\", "\\\\")
line = line.replace('"', '\\"')
enc += len(line) + 2
print(enc - ori)