Untitled
unknown
plain_text
a month ago
910 B
2
Indexable
#include<bits/stdc++.h> using namespace std; int arr[8]; int seen[8]; int n; int came = 0; int size = 0; vector <int> maxx; void b_fasele(int ind){ bool c = 0; bool m = 0; if(ind!=0 && maxx[size]<arr[ind-1]){ maxx.push_back(arr[ind-1]); size++; m = 1; } if(maxx[size]-came > n-ind){ if(m){ maxx.pop_back(); size--; m = 0; } return; } if(ind == n){ for(int i = 0; i<n; i++){ cout << arr[i] << " "; } cout << endl; if(m){ maxx.pop_back(); size--; m = 0; } return; } for(int i = 1; i<=n; i++){ arr[ind] = i; if(seen[i-1] == 0){ came++; c = 1; } seen[i-1]++; b_fasele(ind+1); if(c){ came--; c = 0; } arr[ind] = 0; seen[i-1]--; } if(m){ maxx.pop_back(); size--; m = 0; } } int main(){ cin >> n; maxx.push_back(1); b_fasele(0); }
Editor is loading...
Leave a Comment