File size: 998 Bytes
a4da721
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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()