Ankit_132

F

Jul 1st, 2023
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. #define ll     long long
  6. #define _test   int _TEST; cin>>_TEST; while(_TEST--)
  7. #define ff     first
  8. #define ss     second
  9. #define pb     push_back
  10.  
  11. int main()
  12. {
  13.     int n, m;
  14.     cin>>n>>m;
  15.  
  16.     vector<ll int> p(n), l(m), d(m);
  17.     for(auto &e: p)     cin>>e;
  18.     for(auto &e: l)     cin>>e;
  19.     for(auto &e: d)     cin>>e;
  20.  
  21.     multiset<pair<int, int>> dis;
  22.     for(int i=0; i<m; i++)
  23.         dis.insert({l[i], d[i]});
  24.  
  25.     sort(p.begin(), p.end());
  26.  
  27.     ll int ans = 0;
  28.     multiset<ll int> disAvail;
  29.  
  30.     for(auto e: p)
  31.     {
  32.         while(dis.size() && (*dis.begin()).ff <= e)
  33.         {
  34.             disAvail.insert((*dis.begin()).ss);
  35.             dis.erase(dis.begin());
  36.         }
  37.  
  38.         if(!disAvail.size())
  39.             ans += e;
  40.         else
  41.         {
  42.             ans += e - *disAvail.rbegin();
  43.             disAvail.erase(--disAvail.end());
  44.         }
  45.     }
  46.  
  47.     cout<<ans<<"\n";
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment