printРабочее место участника

printЗадачи

1027. Имена файлов

Ограничения: время – 1s/2s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

13:00
Начал полное резервное копирование Linux-сервера. Для быстроты указал "/dev/nul"

13:03
Недельное резервное копирование закончено. Господи, как я люблю современные технологии!

13:15
Звонок из Комитета Разработки Стандартов, жалуются на математические символы в названиях бланков. Извинившись за недосмотр, пообещал исправить. Повесил трубку и исправил на греческие буквы.
I wish we had some way to handle it sanely, but I don't think a sane solution to case-insensitivity exists.
Linus Torvalds
На компьютере под управлением операционной системы Linux имеется каталог, содержащий `N` файлов. Пользователю требуется скопировать эти файлы на компьютер, работающий под управлением ОС Windows. К сожалению, файловая система Windows имеет странное свойство. Несмотря на то, что она сохраняет большие и малые буквы в именах файлов, имена, отличающиеся только регистром букв, считаются одинаковыми. Например, файлы с именами ChangeLog, CHANGELOG и changelog при копировании на файловую систему Windows попадут в один и тот же файл.
Чтобы избежать потери данных, предлагается при копировании переименовывать файлы по следующим правилам:
  • Файлы копируются в порядке перечисления в исходном каталоге.
  • Имена файлов считаются одинаковыми, если они совпадают с точностью до регистра.
  • Если при копировании очередного файла выяснилось, что файл с таким именем уже был скопирован, то к имени текущего файла добавляется суффикс "1".
  • Если имя, полученное после присоединения суффикса, также уже встречалось, то перебираются суффиксы "2", "3", …, "10", "11", … до тех пор, пока не найдётся суффикс, дающий уникальное имя.
Ввод
Входной файл содержит количество имён `N`, за которым следует `N` строк с именами. Имена состоят из латинских букв и цифр и имеют длину от `1` до `M` символов.
Вывод
Выходной файл должен содержать `N` строк с модифицированными именами файлов.
Ограничения
`1\ ≤\ N\ ≤\ 10000`, `1\ ≤\ M\ ≤\ 255`

Пример ввода

4
aA
Aa
aa
AA1

Пример вывода

aA
Aa1
aa2
AA11
Источник: А. Кленин, ДВГУ
loading