def find_min_max_tests(filenames):
max_length = max(len(filename) for filename in filenames)
min_tests = int(max(filenames))
max_tests = 10**max_length - 1
return min_tests, max_tests
k = int(input())
filenames = [input() for _ in range(k)]
min_tests, max_tests = find_min_max_tests(filenames)
print(min_tests, max_tests)
ограничение по времени на тест 1 секунда
ограничение по памяти на тест 512 мегабайт
При подготовке олимпиады жюри готовит тесты для задачи. Если в задаче n
тестов, они нумеруются от 1
до n
.
Удобно, чтобы файлы с тестами располагались в папке подряд, от номера 1
до номера n
. Однако поскольку файлы в файловом менеджере сортируются по возрастанию имен файлов как строк, если имя файла просто совпадает с номером теста, то правильный порядок файлов нарушается, например, файл «10» идет до файла «2».
Чтобы побороться с этой проблемой, имена файлов дополняют ведущими нулями. Жюри использует минимальное количество ведущих нулей, чтобы имена всех файлов имели одинаковую длину. Например, если в задаче 10
тестов, файлы с ними будут называться «01», «02», «03», «04», «05», «06», «07», «08», «09» и «10».
Андрей — опытный автор задач и всегда использует описанный способ выбора имён для файлов с тестами. Недавно он нашел на своём старом диске файлы с тестами от древней задачи. К сожалению, диск повреждён, и не все файлы сохранились. Помогите Андрею по именам сохранившихся файлов понять, какое минимальное и максимальное число тестов могло быть у этой задачи.
Входные данные
Первая строка ввода содержит число k
— количество сохранившихся файлов (1≤k≤1000
). Следующие k
строк содержат имена файлов. Все эти строки непусты, имеют равную длину, не превышающую 9
, различны, и состоят только из цифр. Никакая строка не состоит только из 0
.
Выходные данные
Выведите два числа: минимальное и максимальное количество тестов, которое могло быть у задачи.
Пример
входные данные
3
05
10
08
выходные данные
10
99