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)