Рус Uzb Eng

0020. Телефонный номер
Ограничение по времени: 2 cекунды
Ограничение по памяти: 64 мегабайт

Недавно Олиму продиктовали номер телефона. Он записал его, разделив числа дефисами, но потом начал сомневаться, не ошибся ли он в записи номера. Ведь бывают различные телефонные номера, которые произносятся одинаково. Например, все четыре номера «3000-100-1», «3000-101», «3100-1», «3101» читаются как «три тысячи сто один». Теперь он хочет выяснить, какие номера произносятся также, как и записанный им номер.
Олим считает, что при произношении телефонного номера не употребляются числа, состоящие более чем из девяти цифр. Напомним, как произносятся числа от 1 до 999 999 999.
Если число больше или равно 1 000 000, то сначала произносится число миллионов в мужском роде, затем слово «миллион», «миллиона» или «миллионов», по следующим правилам. Если число миллионов, взятое по модулю 100, не равно 11 и дает остаток 1 по модулю 10, то произносится слово «миллион». Если число миллионов, взятое по модулю 100, не равно 12, 13 или 14 и дает остаток 2, или 4 по модулю 10, то произносится слово «миллиона». Иначе произносится слово «миллионов».
Если число по модулю 1 000 000 больше или равно 1 000, то затем произносится число тысяч в женском роде, затем слово «тысяча», «тысячи» или «тысяч», по следующим правилам. Если число тысяч, взятое по модулю 100, не равно 11 и дает остаток 1 по модулю 10, то произносится слово «тысяча». Если число тысяч, взятое по модулю 100, не равно 12, 13 или 14 и дает остаток 2, 3 или по модулю 10, то произносится слово «тысячи». Иначе произносится слово «тысяч». Затем, если число по модулю 1 000 отлично от нуля, в мужском роде произносится число единиц.
Например, число 978121014 произносится как «девятьсот семьдесят восемь миллионов сто двадцать одна тысяча четырнадцать», а число 1 000 142 как «один миллион сто сорок два». Заметим, что перед словом «миллион» нельзя опускать слово «один», перед словом «тысяча» слово «одна», а числа от 11 до 19 произносятся одним словом.
Помогите Васе найти все телефонные номера, которые произносятся так же, как тот, который он записал.

Входные данные:
На входе единственная строка, содержащая номер записанного Олиму телефона. Номер телефона — это целые числа, разделенные символом «-» (ASCII код 39). Каждое число в записи положительно, содержит не более девяти цифр и не содержит ведущих нулей. Гарантируется, что в записанном Васей номере встречается не больше 50 цифр.

Выходные данные:
Выведите количество телефонных номеров, которые читаются так же, как и записанный Олиму номер. Гарантируется, что количество номеров в ответе не превышает 100 000. Учтите, что в ответе могут встречаться и номера, составленные более чем из 50 цифр.

Пример ввода Пример вывода
3000-101
123456789
4
256
Область:
Источник задачи: XII ВКОШП 2011 Финал

Отправить решение на проверку

Design by TUIT © 2012-2017 TUIT Online Judge. All rights reserved.