Олимпиадный тренинг

Задача . B. Список файлов


Системный администратор Евдоким снова «отличился». В результате ошибки в некотором скрипте список имен особо важных файлов был поврежден. Так как это были файлы файловой системы BerFS, то известно, что каждое имя файла имеет вид «name.ext», где:

  • name — это строка строчных латинских букв длины от 1 до 8 символов;
  • ext — это строка строчных латинских букв длины от 1 до 3 символов.

Например, «read.me», «example.txt» и «b.cpp» — корректные имена файлов, а «version.info», «ntldr» и «contestdata.zip» — нет.

Повреждение списка привело к тому, что все имена файлов оказались записанными друг за другом, без каких-либо разделителей.

Евдокиму необходимо срочно исправить ситуацию, разделив на части получившуюся строку так, что каждая часть будет корректным именем файла в BerFS. Так как Евдоким уже доказал, что он не силен в программировании, помогите ему. Получившийся список файлов может содержать одинаковые имена файлов.

Входные данные

Входные данные состоят из единственной строки s, длина которой от 1 до 4·105 символов. Строка может содержать только строчные латинские буквы («a» - «z») и точки («.»).

Выходные данные

Выведите «YES» (без кавычек) в первую строку, если возможно разбить s на части требуемым образом. В этом случае следующие строки должны содержать части искомого разбиения, по одной части в строке в порядке их следования в s. Искомое разбиение может содержать одинаковые имена файлов. Если решений несколько, выведите любое.

Если решения не существует, то выведите в единственную строку «NO» (без кавычек).


Примеры
Входные данныеВыходные данные
1 read.meexample.txtb.cpp
YES
read.m
eexample.t
xtb.cpp
2 version.infontldrcontestdata.zip
NO

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя