Spaces:
Running
Running
file = "input.txt" | |
def calculate_total_distance(left_list, right_list): | |
left_list.sort() | |
right_list.sort() | |
total_distance = sum(abs(l - r) for l, r in zip(left_list, right_list)) | |
return total_distance | |
def calculate_similarity_score(left_list, right_list): | |
from collections import Counter | |
right_count = Counter(right_list) | |
similarity_score = sum(l * right_count[l] for l in left_list) | |
return similarity_score | |
def main(): | |
with open(file, 'r') as f: | |
lines = f.readlines() | |
left_list = [] | |
right_list = [] | |
for line in lines: | |
left, right = map(int, line.split()) | |
left_list.append(left) | |
right_list.append(right) | |
# Part 1: Calculate the total distance | |
total_distance = calculate_total_distance(left_list, right_list) | |
print(total_distance) | |
# Part 2: Calculate the similarity score | |
similarity_score = calculate_similarity_score(left_list, right_list) | |
print(similarity_score) | |
main() |