Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <algorithm>
- using namespace std;
- // Функция для преобразования числа в символ
- char intToChar(int num) {
- if (num < 10)
- return '0' + num;
- else
- return 'a' + (num - 10);
- }
- // Функция для генерации всех строк длины N из символов 0..K-1 в обратном лексикографическом порядке
- void generateStrings(int N, int K) {
- vector<int> indices(N, K - 1);
- while (true) {
- // Формируем строку по текущим индексам
- string str;
- for (int i = 0; i < N; ++i)
- str += intToChar(indices[i]);
- // Выводим текущую строку
- cout << str << endl;
- // Уменьшаем индексы
- int j = N - 1;
- while (j >= 0 && indices[j] == 0)
- j--;
- if (j == -1)
- break;
- indices[j]--;
- for (int k = j + 1; k < N; ++k)
- indices[k] = K - 1;
- }
- }
- int main() {
- int N, K;
- cin >> N >> K;
- // Генерируем строки и выводим их в обратном лексикографическом порядке
- generateStrings(N, K);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement