fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. unordered_map<int, int> mp;
  5. priority_queue<int> le;
  6. priority_queue<int, vector<int>,
  7. greater<int>> chan;
  8.  
  9. int main()
  10. {
  11. int n;
  12. cin >> n;
  13. for(int i = 1; i <= n; i++)
  14. {
  15. int c;
  16. cin >> c;
  17. if(c % 2)
  18. mp[i] = 1, le.push(c);
  19. else
  20. chan.push(c);
  21. }
  22. for(int i = 1; i <= n; i++)
  23. {
  24. if(mp[i])
  25. {
  26. cout << le.top() << ' ';
  27. le.pop();
  28. continue;
  29. }
  30. cout << chan.top() << ' ';
  31. chan.pop();
  32. }
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0.01s 5260KB
stdin
5
5 4 3 2 1
stdout
5 2 3 4 1