N = int(eval(input()))

A = list(map(int, input().split()))



Aset = set(A)

lst = {}

for i in Aset:

    lst[i] = 0

    

for i in range(N):

    lst[A[i]] += 1



Q = int(eval(input()))



# 最初の全てのA_iの和

ans_init = 0

for i in lst:

    ans_init += i*lst[i]



# 初期値からのプラスマイナス分

ans_pm = 0

ans = []

for i in range(Q):

    B, C = list(map(int, input().split()))

    if B in lst:

        # 更新する前に、lst中のkeyがBの個数をBnumに記憶しておく。

        Bnum = lst[B]

        # lstを更新

        if C in lst:

            lst[C] += lst[B]

            lst.pop(B)

        else:

            lst[C] = lst[B]

            lst.pop(B)

    

        # 初期値からの増減分をここで算出。

        ans_pm += Bnum*(C-B)

        ans.append(ans_init + ans_pm)

        

    else:

        ans.append(ans_init + ans_pm)



for i in ans:

    print(i)
import collections

N = int(eval(input()))

A = list(map(int, input().split()))



lst = collections.Counter(A)



Q = int(eval(input()))



# 最初の全てのA_iの和

ans_init = 0

for i in lst:

    ans_init += i*lst[i]



# 初期値からのプラスマイナス分

ans_pm = 0

ans = []

for i in range(Q):

    B, C = list(map(int, input().split()))

    if B in lst:

        # 更新する前に、lst中のkeyがBの個数をBnumに記憶しておく。

        Bnum = lst[B]

        # lstを更新

        if C in lst:

            lst[C] += lst[B]

            lst.pop(B)

        else:

            lst[C] = lst[B]

            lst.pop(B)

    

        # 初期値からの増減分をここで算出。

        ans_pm += Bnum*(C-B)

        ans.append(ans_init + ans_pm)

        

    else:

        ans.append(ans_init + ans_pm)



for i in ans:

    print(i)
N = int(eval(input()))
A = list(map(int, input().split()))
Aset = set(A)
lst = {}
for i in Aset:
    lst[i] = 0
for i in range(N):
    lst[A[i]] += 1
Q = int(eval(input()))
# 最初の全てのA_iの和
ans_init = 0
for i in lst:
    ans_init += i * lst[i]
# 初期値からのプラスマイナス分
ans_pm = 0
ans = []
for i in range(Q):
    B, C = list(map(int, input().split()))
    if B in lst:
        # 更新する前に、lst中のkeyがBの個数をBnumに記憶しておく。
        Bnum = lst[B]
        # lstを更新
        if C in lst:
            lst[C] += lst[B]
            lst.pop(B)
        else:
            lst[C] = lst[B]
            lst.pop(B)
        # 初期値からの増減分をここで算出。
        ans_pm += Bnum * (C - B)
        ans.append(ans_init + ans_pm)
    else:
        ans.append(ans_init + ans_pm)
for i in ans:
    print(i)

import collections

N = int(eval(input()))
A = list(map(int, input().split()))
lst = collections.Counter(A)
Q = int(eval(input()))
# 最初の全てのA_iの和
ans_init = 0
for i in lst:
    ans_init += i * lst[i]
# 初期値からのプラスマイナス分
ans_pm = 0
ans = []
for i in range(Q):
    B, C = list(map(int, input().split()))
    if B in lst:
        # 更新する前に、lst中のkeyがBの個数をBnumに記憶しておく。
        Bnum = lst[B]
        # lstを更新
        if C in lst:
            lst[C] += lst[B]
            lst.pop(B)
        else:
            lst[C] = lst[B]
            lst.pop(B)
        # 初期値からの増減分をここで算出。
        ans_pm += Bnum * (C - B)
        ans.append(ans_init + ans_pm)
    else:
        ans.append(ans_init + ans_pm)
for i in ans:
    print(i)

+import collections + -Aset = set(A) -lst = {} -for i in Aset: -    lst[i] = 0 -for i in range(N): -    lst[A[i]] += 1 +lst = collections.Counter(A)