Advertisement
Josif_tepe

Untitled

Jan 17th, 2023
755
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <queue>
  4. #include <algorithm>
  5. #include <set>
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     int n;
  11.     cin >> n;
  12.    
  13.     vector<int> v(n);
  14.     set<pair<int, int>> st;
  15.     int sum = 0;
  16.     for(int i = 0; i < n; i++) {
  17.         cin >> v[i];
  18.         st.insert(make_pair(v[i], i));
  19.         sum += v[i] - 1;
  20.     }
  21.     if(sum >= n) {
  22.         cout << "PROBLEM" << endl;
  23.         return 0;
  24.     }
  25.    
  26.     for(int i = 0; i < n; i++) {
  27.         set<pair<int, int> >::iterator F = st.begin();
  28.         set<pair<int, int> >::iterator L = st.end();
  29.         L--;
  30.        
  31.         if(F->first > 0 and L->first > 0 and L->second != F->second) {
  32.             cout << F->second + 1 << " " << L->second + 1 << endl;
  33.             pair<int, int> p1 = *F;
  34.             pair<int, int> p2 = *L;
  35.             st.erase(F);
  36.             st.erase(L);
  37.             if(p1.first > 1) {
  38.                 st.insert(make_pair(p1.first - 1, p1.second));
  39.             }
  40.             if(p2.first > 1) {
  41.                 st.insert(make_pair(p2.first - 1, p2.second));
  42.             }
  43.         }
  44.        
  45.     }
  46.  
  47.  
  48.     return 0;
  49. }
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement