Guest User

Untitled

a guest
Apr 9th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1.  
  2. #include<bits/stdc++.h>
  3. #include <ext/pb_ds/assoc_container.hpp>
  4. using namespace __gnu_pbds;
  5. using namespace std;
  6. typedef long long int lli;
  7. #define ff              first
  8. #define ss              second
  9. #define pb              push_back
  10. #define mp              make_pair
  11. #define pii             pair<lli,lli>
  12. #define vi              vector<lli>
  13. #define mii             map<lli,lli>
  14. #define pqb             priority_queue<lli>
  15. #define pqs             priority_queue<lli,vi,greater<lli> >
  16. #define setbits(x)      __builtin_popcountll(x)
  17. #define zrobits(x)      __builtin_ctzll(x)
  18. #define mod             1000000007
  19. #define inf             1e18
  20. #define ps(x,y)         fixed<<setprecision(y)<<x
  21. #define mk(arr,n,type)  type *arr=new type[n];
  22. #define w(x)            lli x; cin>>x; while(x--)
  23. mt19937                 rng(chrono::steady_clock::now().time_since_epoch().count());
  24. #define ONLINE_JUDGE
  25. typedef tree<lli, null_type, less<lli>, rb_tree_tag, tree_order_statistics_node_update> pbds;
  26.  
  27.  
  28. void zanj0()
  29. {
  30.     ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  31. #ifndef ONLINE_JUDGE
  32.     freopen("input.txt", "r", stdin);
  33.     freopen("output.txt", "w", stdout);
  34. #endif
  35. }
  36. bool cmp(pair <lli, lli>& a, pair <lli, lli>& b) {
  37.     return abs(a.ff - a.ss)  >= abs(b.ff - b.ss);
  38. }
  39. void solve() {
  40.     lli n, a, b;
  41.     cin >> n >> a >> b;
  42.     vector < pair <lli, lli> > v(n);
  43.     for (lli i = 0; i < n; i++) {
  44.         cin >> v[i].ff;
  45.     }
  46.     for (lli i = 0; i < n; i++) {
  47.         cin >> v[i].ss;
  48.     }
  49.     lli ret = 0;
  50.     sort(v.begin(), v.end(), cmp);
  51.     for (lli i = 0; i < n; i++) {
  52.         if (v[i].ff > v[i].ss && a > 0) {
  53.             ret += v[i].ff;
  54.             a--;
  55.         } else if (v[i].ff < v[i].ss && b > 0) {
  56.             ret += v[i].ss;
  57.             b--;
  58.         } else if (b > 0) {
  59.             ret += v[i].ss;
  60.             b--;
  61.         } else if (a > 0) {
  62.             ret += v[i].ff;
  63.             a--;
  64.         }
  65.     }
  66.     cout << ret << endl;
  67. }
  68. int main()
  69. {
  70.     zanj0();
  71.     solve();
  72.     return 0;
  73. }
Add Comment
Please, Sign In to add comment