#include #include #include #include using namespace std; int main() { int n; cin >> n; vector daski(n); for(int i = 0; i < n; i++) { cin >> daski[i]; } sort(daski.begin(), daski.end()); vector> v(n); for(int i = 0; i < n; i++) { cin >> v[i].first >> v[i].second; } sort(v.begin(), v.end(), [](const auto &a, const auto &b) { return a.second > b.second; }); long long res = 0; for(int i = 0; i < n; i++) { int visina = v[i].first; int idx = (int) (upper_bound(daski.begin(), daski.end(), visina) - daski.begin()); idx--; if(idx >= 0 and idx < (int) daski.size()) { if(daski[idx] <= v[i].first) { res += v[i].second; daski.erase(daski.begin() + idx); } } } cout << res << endl; return 0; }