`
Задача ABACABA
Абацабівська мова складається з усіх тих послідовностей літер A, B, C, (звичайно, латиницею), у яких одна й та сама літера повторюється не більше двох разів підряд. Усі ці слова занумеровані за правилами: спочатку всі однобуквенні, потім усі двобуквенні і т. д., а серед слів з однаковою кількістю букв — за словниковим порядком, тобто спочатку порівнюються перші букви; якщо вони однакові, то порівнюються другі, і т. д. Зокрема, словами абацабівської мови з 1‑го по 47‑е є A, B, C, AA, AB, AC, BA, BB, BC, CA, CB, CC, AAB, AAC, ABA, ABB, ABC, ACA, ACB, ACC, BAA, BAB, BAC, BBA, BBC, BCA, BCB, BCC, CAA, CAB, CAC, CBA, CBB, CBC, CCA, CCB, AABA, AABB, AABC, AACA, AACB, AACC, ABAA, ABAB, ABAC, ABBA, ABBC. Напишіть програму, яка виконуватиме перетворення між буквенним та порядковим поданням слів абацабівської мови.
Технічні умови Програма ABACABA читає з клавіатури або ціле строго додатне число, або послідовність літер, що утворює слово абацабівської мови. Програма повинна вивести у першому випадку слово абацабівської мови, що має такий номер, а у другому — порядковий номер введеного слова. Достатньо, щоб програма вміла працювати зі словами, номери яких не перевищують 1018.
Приклад 1 |
Приклад 2 |
Введення AACC Виведення 42 |
Введення 935 Виведення ABACABA |
Програма повинна виводити на екран лише відповідь, без будь-яких зайвих символів, в т. ч. й пробілів. Числа повинні починатися з ненульової цифри.
© LIKT 1998-2024