void main(){
	long n = _scan!long();
	long[] a = _scanln!long();
	long q = _scan!long();
	long[long] dic;
	long ans;

	// 合計値と参照辞書の作成
	foreach(elm; a){
		ans += elm;
		dic[elm]++;
	}
	// replace 操作
	foreach(i; 0..q){
		long[] bc = _scanln!long();
		ans += bc[1]*dic.get(bc[0], 0) - bc[0]*dic.get(bc[0], 0);
		dic[bc[1]] += dic.get(bc[0], 0);
		dic[bc[0]] = 0;
		ans.writeln();
	}
}

import std.stdio, std.conv, std.algorithm, std.numeric, std.string, std.math;

// 1要素のみの入力
T _scan(T= int)(){
	return to!(T)( readln().chomp() );
}

// 1行に同一型の複数入力
T[] _scanln(T = int)(){
	T[] ln;
	foreach(string elm; readln().chomp().split()){
		ln ~= elm.to!T();
	}
	return ln;
}
