#include <iostream>#include <iomanip>const int maxx = 100;int A[maxx], Temp[maxx]; int number, size;int index, inserted_number_position;int z;void swap ( int &r, int &c){ int temp = r; r = c; c = temp;}void insert ( int A[], int& size, int index, int inserted_number_position ) { for ( int i = size; i > index; i--) { A[i] = A[i-1]; } A[index] = inserted_number_position; size++;}void print(){ for ( int x = 0; x < number; x++ ) { cout << A[x] << setw(3); } cout << endl; cout << "----------------------------------------" << endl;}void initialization(){ for ( int x = 0; x < size; x++ ) { A[x] = 0; } for ( int x = 0; x < 3; x++ ) { A[x] = x+1; }}void transform(){ for ( int x = 0; x < number; x++ ) { Temp[x] = A[x]; }}void b_transform(){ for ( int x = 0; x < number; x++ ) { A[x] = Temp[x]; }}void recovery ( int A[], int& size, int index ) { for ( int i = size; i > index; i--) { A[i-1] = A[i]; } A[index-1] = 0; size--;}void recursive_selection ( int new_num ){ int temp_size = new_num - 1; if ( new_num > number ) { print(); cin.get(); } else { for ( int i = new_num-1; i > 1; i-- ) { insert ( A, temp_size, new_num - 1, new_num ); recursive_selection ( new_num + 1 ); swap (A[i], A[i-1]); } recovery (A, temp_size, new_num ); } }void main(){ cout << " Enter a number of people are placed around a round-table: "; cin >> number; initialization(); if ( number <= 3 ) { for ( int x = 0; x <= number; x++ ) { cout << A[x] << setw(4); } } else { cout << "number is " << number << endl; recursive_selection (4); }int x;cin >> x;}