Lang:G++
Edit1234567891011121314151617181920212223242526272829#include <iostream>using namespace std;int n;void dfs(int st, string tmp, string ans, int last){if ( st == 0 && tmp.length() == 0 ){cout<<ans<<endl;return ;}for ( int i = 0 ; i < n ; i++ ){if ( st & (1<<i) ){if ( i > last )dfs(st^(1<<i), "", ans+char('1'+i) + ((st^(1<<i)) ? "-" : "" ), -1);if ( i > last )dfs(st^(1<<i), tmp+char('1'+i), ans+char('1'+i), i);}}}int main(){cin>>n;dfs((1<<n)-1, "", "", -1);return 0;}