язык с++B4. Двоичные строки заданной длины в обратном порядкеОграничение времени 1 секундаОграничение памяти 64MbВвод стандартный ввод или input. txtВывод стандартный вывод или output. txtПо данному числу N выведите все строки длины N из нулей и единиц в обратном лексикографическом порядке. Формат вводаЗадано единственное число N. (1 ≤ N ≤ 10)Формат выводаНеобходимо вывести все строки длины N из нулей и единиц в обратном лексикографическом порядке. #include #include using namespace std;void fun_1(char ch, char arr[], int n){ for (int i = 0; i < n; i++) { arr[i] = ch; }}void fun_2(char arr[], int n){ for (int i = 0; i < n; i++) { cout << arr[i]; } cout << endl;}int fun_3(char ch, char arr[], int n){ unsigned short count = 0; for (int i = 0; i < n; i++) { if (arr[i] == ch) count++; } return count;}int main(){ int n; cin >> n; char* arr = new char[n]; fun_1('0', arr, n); fun_2(arr, n); do { unsigned short tm = n; while (arr[tm - 1] == '1') tm--; arr[tm - 1] = '1'; while (tm < n) { tm++; arr[tm - 1] = '0'; } fun_2(arr, n); } while (fun_3('0', arr, n) = 0); return 0;}