Подготовка к олимпиадам: быстрый ввод-вывод

Быстрый ввод через sys.stdin, ловушки Python на олимпиадах и checklist.

Python лаконичен, но медленнее C++ в десятки раз. Чтобы он выживал на олимпиадах, нужно знать несколько приёмов. Первый и главный — быстрый ввод. Обычный input() медленный; при больших объёмах данных (сотни тысяч строк) решение может не уложиться в лимит только из-за чтения. Замена — sys.stdin.
Python

Шаблон с быстрым вводом. Введите: 4, затем 10 20 30 40

Что здесь важно: • input = sys.stdin.readline — подменяет медленный input быстрым (осторожно: readline оставляет в конце символ перевода строки, для чисел это не мешает, для строк используйте .strip()); • ответы копятся в списке и выводятся одним print через join — тысячи отдельных print работают заметно медленнее. Ловушки Python, о которых нужно знать заранее: 1. Глубокая рекурсия падает: лимит по умолчанию около 1000 вызовов. Увеличивайте sys.setrecursionlimit(300000) или переписывайте на цикл. 2. Если алгоритм правильный, но время всё равно не проходит, — сначала ищите лишний цикл у себя, и только потом вините язык. 3. Целые числа не переполняются — об этом в Python можно не думать вовсе.
Checklist перед отправкой: 1. Крайние случаи: n = 1, пустые данные, отрицательные числа. 2. Правильные ли // и % (а не /)? 3. Формат вывода точно совпадает с условием? Курс завершён — поздравляем! Откройте раздел «Обучение» и начинайте «Путь олимпиадника» с Уровня 1. Удачи!
Доска