C/C++

Пожалуйста решите задачу на с++

Помогите !!!
#include <iostream>
#include <string>
#include <random>
#include <algorithm>
using namespace std;
string password(unsigned layer = 4, unsigned length = 14) {
if (length < 6) return "";
const string suit[] = {
"abcdefghijklmnopqrstuvwxyz",
"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"0123456789",
"!#$%&()*+,-.;=>?@[]^_{}~"
};
mt19937 gen{ random_device()() };
uniform_int_distribution<> layer4(0, suit[3].length() - 1);
uniform_int_distribution<> layer3(0, suit[2].length() - 1);
uniform_int_distribution<> layer2(0, suit[1].length() - 1);
uniform_int_distribution<> layer1(0, suit[0].length() - 1);
uniform_int_distribution<> choice(0, layer - 1);
unsigned box[4] = { 0 };
auto pos = size(suit) - layer;
for (auto i = 0U; i < pos; ++i) box[i] = 1;
string word;
do {
word = "";
for (auto i = pos; i < layer; ++i) box[i] = 0;
auto size = length;
do {
switch (choice(gen)) {
case 0:
word += suit[0][layer1(gen)];
++box[3];
break;
case 1:
word += suit[1][layer2(gen)];
++box[2];
break;
case 2:
word += suit[2][layer3(gen)];
++box[1];
break;
case 3:
word += suit[3][layer4(gen)];
++box[0];
break;
}
} while (--size);
} while (find(begin(box), end(box), 0) != end(box));
return word;
}
int main() {
auto insecure = password(1, 6);
auto simple = password(2, 10);
auto secure = password(3, 14);
auto tricky = password(4, 24);
system("chcp 1251 > nul");
cout
<< "Небезопасный: " << insecure << '\n'
<< "Простой: " << simple << '\n'
<< "Безопасный: " << secure << '\n'
<< "Надёжный: " << tricky << '\n';
system("pause > nul");
}
Аубакиров Эдуард
Аубакиров Эдуард
74 814
Лучший ответ
Сам я на плюсах не пишу, но вот такой велосипед сделал…
https://pastebin.com/kAe5hUpW