AtCoder Beginner Contest 171 D - Replacing 【Python】

https://atcoder.jp/contests/abc171/tasks/abc171_d

AtCoder ProblemsのRecommendationで Difficulty: 498、Solve Probability: 42%でした。

始めに数列Aのすべての要素の和を計算しdefaultdictで要素の数をカウントして、クエリごとにカウントを調整しSiを求めていくことで解くことができました。

from collections import defaultdict
N = int(input())
A = list(map(int, input().split()))
Q = int(input())

d = defaultdict(int)
for i in range(N):
    d[A[i]] += 1
sum_A = sum(A)

for i in range(Q):
    b, c = map(int, input().split())
    if d[b] > 0:
        b_count = d[b]
        d[b] -= b_count
        d[c] += b_count
        sum_A -= b * b_count
        sum_A += c * b_count
    print(sum_A)