fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int f(int i, int k = 4) {
  7. return i + k - 2 * (i % k) - 1;
  8. }
  9.  
  10. auto pairs(const vector<int>& in) {
  11. vector<pair<int, int>> result;
  12. for (int i = 0; i < in.size(); ++i) {
  13. int j = f(i);
  14. if (i < j) {
  15. result.emplace_back(in[i], in[j]);
  16. }
  17. }
  18. return result;
  19. }
  20.  
  21. int main() {
  22. vector<int> test = {1,2,3,4,5,6,7,8};
  23. for (auto p : pairs(test)) {
  24. cout << p.first << ' ' << p.second << endl;
  25. }
  26. return 0;
  27. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
1 4
2 3
5 8
6 7