#include <bits/stdc++.h>
using namespace std;
long long divi(long long x) {
  long long i, ans = 0;
  for ((i) = (2); (i) < (x + 1); (i)++) {
    if (x % i == 0) {
      ans++;
    }
  }
  return ans;
}
long long cei(long long x, long long y) {
  long long ans = x / y;
  if (x % y != 0) ans++;
  return ans;
}
long long gcd(long long x, long long y) { return y ? gcd(y, x % y) : x; }
long long lcm(long long x, long long y) { return x / gcd(x, y) * y; }
long long llpow(long long x, long long n) {
  long long i, ans = 1;
  for ((i) = (0); (i) < (n); (i)++) ans *= x;
  return ans;
}
long long fact(long long x) {
  long long i, ans = 1;
  for ((i) = (0); (i) < (x); (i)++) ans *= (x - i);
  return ans;
}
long long ncr(long long n, long long r) {
  return fact(n) / fact(r) / fact(n - r);
}
long long npr(long long n, long long r) { return fact(n) / fact(n - r); }
bool prime(long long a) {
  if (a <= 1) return false;
  long long i;
  for (i = 2; i * i <= a; i++) {
    if (a % i == 0) return false;
  }
  return true;
}
long long i, j;
long long ans = 0;
int main() {
  long long n;
  cin >> n;
  long long a[n + 1], memo[100010] = {0}, sum = 0;
  for ((i) = (0); (i) < (n); (i)++) {
    cin >> a[i];
    memo[a[i]]++;
    sum += a[i];
  }
  long long q;
  cin >> q;
  long long b[q + 1], c[1 + q], tmp;
  for ((i) = (0); (i) < (q); (i)++) {
    cin >> b[i];
    cin >> c[i];
    tmp = c[i] - b[i];
    sum += memo[b[i]] * tmp;
    memo[c[i]] += memo[b[i]];
    cout << sum << endl;
  }
  return 0;
}
