35 lines
812 B
Python
35 lines
812 B
Python
from lib import get_data
|
|
|
|
|
|
data = get_data(__file__)
|
|
|
|
def is_invalid(xs: str) -> bool:
|
|
for seq_len in range(1, len(xs) // 2 + 1):
|
|
if xs[:seq_len] == xs[seq_len:]:
|
|
return True
|
|
return False
|
|
|
|
def is_invalid2(xs: str) -> bool:
|
|
for seq_len in range(1, len(xs)):
|
|
if len(xs) % seq_len != 0:
|
|
continue
|
|
for repeat in range(len(xs) // seq_len):
|
|
i = seq_len * repeat
|
|
if xs[:seq_len] != xs[i:i + seq_len]:
|
|
break
|
|
else:
|
|
return True
|
|
return False
|
|
|
|
r1, r2 = 0, 0
|
|
for id_range in data.split(","):
|
|
lo, up = list(map(int, id_range.split("-")))
|
|
for id in range(lo, up + 1):
|
|
if is_invalid(str(id)):
|
|
r1 += id
|
|
if is_invalid2(str(id)):
|
|
r2 += id
|
|
|
|
print(r1)
|
|
print(r2)
|