Задача 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-2018