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() |