Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. //слишком сложно юзать комментарии
  4.  
  5. using namespace std;
  6.  
  7. typedef pair<int, int> pint;
  8. typedef long long li;
  9.  
  10. const int N = int(1e9) + 5;
  11. const long long INF = 1e18 + 5;
  12. const int MAXN = 1005;
  13.  
  14. int main() {
  15.     li n, m;
  16.     cin >> n;
  17.     vector<pair<li, li>> a(n);
  18.     li sum1 = 0ll, sum2 = 0ll;
  19.  
  20.     for (int i = 0; i < n; i++) {
  21.         cin >> a[i].first;
  22.         a[i].second = i + 1;
  23.         sum1 += a[i].first;
  24.     }
  25.  
  26.     cin >> m;
  27.  
  28.     vector<pair<li, li>> b(m);
  29.  
  30.     for (int i = 0; i < m; i++) {
  31.         cin >> b[i].first;
  32.         b[i].second = i + 1;
  33.         sum2 += b[i].first;
  34.     }
  35.  
  36.     sort(a.begin(), a.end());
  37.     sort(b.begin(), b.end());
  38.  
  39.     vector<pair<li, li>> ans;
  40.  
  41.     for (int i = 0; i < 2, i < min(max(1ll, n / 2), max(1ll, m / 2)); i++) {
  42.         if (a[n - i - 1].first - b[0].first > b[n - i - 1].first - a[0].first) {
  43.             ans.push_back(make_pair(a[n - i - 1].second, b[i].second));
  44.             sum1 += b[i].first - a[n - i - 1].first;
  45.             sum2 += a[n - i - 1].first - b[i].first;
  46.         } else {
  47.             ans.push_back(make_pair(b[n - i - 1].second, a[i].second));
  48.             sum2 += a[i].first - b[n - i - 1].first;
  49.             sum1 += b[n - i - 1].first - a[i].first;
  50.         }
  51.     }
  52.  
  53.     cout << abs(sum1 - sum2) << endl;
  54.  
  55.     cout << ans.size() << endl;
  56.  
  57.     for (int i = 0; i < ans.size(); i++) {
  58.         cout << ans[i].first << ' ' << ans[i].second << endl;
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement