fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <initializer_list>
  4. #include <string>
  5.  
  6. template <typename T>
  7. auto makeVector(std::initializer_list<T> l) {
  8. return std::vector<T>(l);
  9. }
  10.  
  11. int main() {
  12. const auto dict = makeVector({"[В]", "[ж]", "[у]", "[х]"});
  13. const size_t dictSize = dict.size();
  14. const size_t wordSize = 5;
  15.  
  16. size_t current[wordSize] = {};
  17.  
  18. auto out = [&] {
  19. for (size_t i = 0; i < wordSize; ++i) {
  20. std::cout << dict[current[wordSize - 1 - i]] << ' ';
  21. }
  22.  
  23. std::cout << '\n';
  24. };
  25.  
  26. auto done = [&] {
  27. for (size_t i = 0; i < wordSize; ++i) {
  28. if (current[i] < dictSize - 1) {
  29. return false;
  30. }
  31. }
  32.  
  33. return true;
  34. };
  35.  
  36. auto inc = [&] {
  37. bool carryFlag = false;
  38.  
  39. for (size_t i = 0; i < wordSize; ++i) {
  40. size_t newValue = current[i] + 1;
  41.  
  42. if (newValue >= dictSize) {
  43. carryFlag = true;
  44.  
  45. continue;
  46. }
  47.  
  48. if (carryFlag) {
  49. for (size_t j = 0; j <= i; j++) {
  50. current[j] = newValue;
  51. }
  52. } else {
  53. current[i] = newValue;
  54. }
  55.  
  56. break;
  57. }
  58. };
  59.  
  60. while (true) {
  61. out();
  62.  
  63. if (done()) {
  64. break;
  65. }
  66.  
  67. inc();
  68. }
  69. }
  70.  
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
[В] [В] [В] [В] [В] 
[В] [В] [В] [В] [ж] 
[В] [В] [В] [В] [у] 
[В] [В] [В] [В] [х] 
[В] [В] [В] [ж] [ж] 
[В] [В] [В] [ж] [у] 
[В] [В] [В] [ж] [х] 
[В] [В] [В] [у] [у] 
[В] [В] [В] [у] [х] 
[В] [В] [В] [х] [х] 
[В] [В] [ж] [ж] [ж] 
[В] [В] [ж] [ж] [у] 
[В] [В] [ж] [ж] [х] 
[В] [В] [ж] [у] [у] 
[В] [В] [ж] [у] [х] 
[В] [В] [ж] [х] [х] 
[В] [В] [у] [у] [у] 
[В] [В] [у] [у] [х] 
[В] [В] [у] [х] [х] 
[В] [В] [х] [х] [х] 
[В] [ж] [ж] [ж] [ж] 
[В] [ж] [ж] [ж] [у] 
[В] [ж] [ж] [ж] [х] 
[В] [ж] [ж] [у] [у] 
[В] [ж] [ж] [у] [х] 
[В] [ж] [ж] [х] [х] 
[В] [ж] [у] [у] [у] 
[В] [ж] [у] [у] [х] 
[В] [ж] [у] [х] [х] 
[В] [ж] [х] [х] [х] 
[В] [у] [у] [у] [у] 
[В] [у] [у] [у] [х] 
[В] [у] [у] [х] [х] 
[В] [у] [х] [х] [х] 
[В] [х] [х] [х] [х] 
[ж] [ж] [ж] [ж] [ж] 
[ж] [ж] [ж] [ж] [у] 
[ж] [ж] [ж] [ж] [х] 
[ж] [ж] [ж] [у] [у] 
[ж] [ж] [ж] [у] [х] 
[ж] [ж] [ж] [х] [х] 
[ж] [ж] [у] [у] [у] 
[ж] [ж] [у] [у] [х] 
[ж] [ж] [у] [х] [х] 
[ж] [ж] [х] [х] [х] 
[ж] [у] [у] [у] [у] 
[ж] [у] [у] [у] [х] 
[ж] [у] [у] [х] [х] 
[ж] [у] [х] [х] [х] 
[ж] [х] [х] [х] [х] 
[у] [у] [у] [у] [у] 
[у] [у] [у] [у] [х] 
[у] [у] [у] [х] [х] 
[у] [у] [х] [х] [х] 
[у] [х] [х] [х] [х] 
[х] [х] [х] [х] [х]