#include #define ll int #define pb push_back #define mp make_pair #define ss second #define ff first using namespace std; bool check(const vector&data){ for (ll i=0;i<(ll)data.size()-1;i++){ if (data[i]!=(i+1)){ return false; } } return true; } struct node{ vectordata; vectorpath; }; map ,bool>mm; int main(){ ll n; cin >> n; // Enter n vectordata; for (ll i=n;i>0;i--){ data.pb(i); } queueq; node no; no.data = data; q.push(no); while (q.size() > 0){ no = q.front(); q.pop(); if(mm[no.data]==1) continue; mm[no.data]=1; if (check(no.data)){ //checks whether data is sorted or not cout << "Array is Sorted" << endl; for (ll i=0;i<(ll)no.data.size();i++){ cout << no.data[i] << " "; } cout << endl; cout<