#include using namespace std; struct town{ int pop, locate; }; bool compare(town t1, town t2){ return t1.pop > t2.pop; } int main(){ int n; cin >> n; town t[n]; int i, j; for(i = 0; i < n; i++){ cin >> t[i].pop; } for(i = 0; i < n; i++){ cin >> t[i].locate; } sort(t, t + n, compare); unordered_map mp; int m; cin >> m; long int p, size, k = 1; for(i = 0; i < m; i++){ cin >> p >> size; for(j = p - size; j <= p + size; j++){ mp[j] = k; } k++; } long int sum = 0; for(i = 0; i < n; i++){ if(mp[t[i].locate] == 0){ sum += t[i].pop; } } for(i = 0; i < n; i++){ if(mp[t[i].locate] != 0){ sum += t[i].pop; break; } } cout << sum; }