#include <iostream>
#include <vector>
using namespace std;
int f(int i, int k = 4) {
return i + k - 2 * (i % k) - 1;
}
auto pairs(const vector<int>& in) {
vector<pair<int, int>> result;
for (int i = 0; i < in.size(); ++i) {
int j = f(i);
if (i < j) {
result.emplace_back(in[i], in[j]);
}
}
return result;
}
int main() {
vector<int> test = {1,2,3,4,5,6,7,8};
for (auto p : pairs(test)) {
cout << p.first << ' ' << p.second << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBmKGludCBpLCBpbnQgayA9IDQpIHsKCXJldHVybiBpICsgayAtIDIgKiAoaSAlIGspIC0gMTsKfQoKYXV0byBwYWlycyhjb25zdCB2ZWN0b3I8aW50PiYgaW4pIHsKCXZlY3RvcjxwYWlyPGludCwgaW50Pj4gcmVzdWx0OwoJZm9yIChpbnQgaSA9IDA7IGkgPCBpbi5zaXplKCk7ICsraSkgewoJCWludCBqID0gZihpKTsKCQlpZiAoaSA8IGopIHsKCQkJcmVzdWx0LmVtcGxhY2VfYmFjayhpbltpXSwgaW5bal0pOwoJCX0KCX0KCXJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKCkgewoJdmVjdG9yPGludD4gdGVzdCA9IHsxLDIsMyw0LDUsNiw3LDh9OwoJZm9yIChhdXRvIHAgOiBwYWlycyh0ZXN0KSkgewoJCWNvdXQgPDwgcC5maXJzdCA8PCAnICcgPDwgcC5zZWNvbmQgPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9