#include<bits/stdc++.h>
using namespace std;
#define optimizar_io ios_base::sync_with_stdio(0); cin.tie(0);
#define fore(i, a, b) for(int i = a; i < b; i++)
#define fori(i, a, b) for(int i = a; i <= b; i++)
#define pb push_back
#define popb pop_back
#define mk make_pair
#define fi first
#define se second
#define endl '\n'
#define MAX 100005
typedef long long int lli;
typedef long double ld;
const double PI = acos(-1.0);
ld eps = 1e-9;
vector<lli> bit(MAX, 0);
void clean() { // O(MAX)
	for(int i = 0; i < MAX; i++) bit[i] = 0;	
}
lli F(lli a, lli b){return a + b;}
void update(int i, lli val) { // O(log(MAX))
	for(i++; i < MAX; i += i & -i) 
		bit[i] = F(bit[i], val);
}
lli query(int i) { // O(log(MAX))
	lli ans = 0;
	for(i++; i; i -= i & -i) ans = F(ans, bit[i]);
	return ans;
}
int main() {
	optimizar_io
	int n; cin >> n;
	lli b, c; 
	vector<lli> v(n);
	vector<int> bucket(MAX);
	fore(i, 0, n) {
		cin >> v[i];
		bucket[v[i]]++;
	}
	fore(i, 0, bucket.size()) {
		lli ele = bucket[i] * i;
		update(i, ele);
	}
	int q; cin >> q;
	fore(i, 0, q) {
		cin >> b >> c;
		lli actual = -b * bucket[b];
		update(b, actual);
		actual = -c * bucket[c];
		update(c, actual);
		bucket[c] += bucket[b];
		bucket[b] = 0;
		lli up = bucket[c] * c;
		update(c, up);
		cout << query(MAX) << endl;
	}
}