fork(2) download
  1. #include <iostream>
  2. #include <map>
  3. using namespace std;
  4.  
  5. int main() {
  6. multimap <double,int> multimap;
  7. int n;
  8. cin >> n;
  9. int element;
  10. for(int i = 1; i <= n; i++) {
  11. cin >> element;
  12. multimap.insert(pair<double,int>(element, i));
  13. }
  14. while(multimap.size() != 1) {
  15. pair<double,int> x = *multimap.begin();
  16. multimap.erase(multimap.begin());
  17. pair<double,int> y = *multimap.begin();
  18. multimap.erase(multimap.begin());
  19. cout << min(x.second, y.second) << " " << max(x.second, y.second) << endl;
  20. multimap.insert(pair<double,int>((x.first + y.first) / 2, ++n));
  21. }
  22. return 0;
  23. }
Success #stdin #stdout 0s 4464KB
stdin
3
7 4 2
stdout
2 3
1 4