https://cses.fi/paste/4044f0215e650326d4383f/
#include <bits/stdc++.h> using namespace std; int n; vector<int> v; set<int> s; void f(){ if(v.size() == n){ for(int i: v) cout << i << " "; exit(0); } for(int i: s){ if(v.empty() || abs(v.back() - i) > 1){ v.push_back(i); s.erase(i); f(); s.insert(i); v.pop_back(); } } } int main(){ cin >> n; for(int i = 1; i <= n; i++) s.insert(i); f(); cout << "NO SOLUTION" << endl; }