using System;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using static System.Console;
using static System.Math;
using System.Collections.Specialized;
using System.IO.Pipes;

namespace ConsoleC____
{
    class Program
    {
        static void Main()
        {
            int[] a = new int[10010];
            for (int i = 0; i < 10010; i++) a[i] = 0;
            int N = int.Parse(ReadLine());
            int[] A = new int[N];
            long ans = 0;
            string[] s = ReadLine().Split(' ');
            for (int i = 0; i < N; i++)
            {
                A[i] = int.Parse(s[i]);
                ans += A[i];
                //a[i]はiがA中に何個あるか記憶してる
                a[A[i]]++;
            }
            int Q = int.Parse(ReadLine());
            int[] B = new int[Q], C = new int[Q];
            for (int i = 0; i < 2 * Q; i += 2) {
                string[] s2 = ReadLine().Split(' ');
                B[i / 2] = int.Parse(s2[0]);
                C[i / 2] = int.Parse(s2[1]);
            }
            for (int i = 0; i < Q; i++)
            {
                //A中のB[i]の数を減らしてすべてC[i]として記録する
                int bNum = a[B[i]];
                //総和を書き換え
                //WriteLine("C[{0}]: {1}, B[{0}]: {2}, bNum: {3}", i, C[i], B[i], bNum);
                //for (int j = 0; j < N; j++) Write("{0} ", a[j + 1]);
                ans += (C[i] - B[i]) * bNum;
                WriteLine(ans);
                //a[i]の中身を書き換え
                a[B[i]] = 0;
                a[C[i]] += bNum;
            }
        }
    }
}