Подготовка к олимпиадам: быстрый ввод-вывод
BufferedReader и StringBuilder: быстрый ввод-вывод и олимпиадный шаблон.
Scanner прост, но медленный: на сотнях тысяч чисел он может не уложиться в лимит времени, даже если алгоритм правильный. Олимпиадный стандарт для Java — BufferedReader для чтения и StringBuilder для вывода.
• BufferedReader читает большими кусками, StreamTokenizer или split разбирают строку на числа;
• StringBuilder накапливает весь вывод, и он печатается одним вызовом в конце.
Java
Быстрый шаблон. Введите: 4, затем 10 20 30 40
Что важно в шаблоне:
• throws Exception у main избавляет от обязательных try/catch при чтении;
• br.readLine() читает целую строку, StringTokenizer выдаёт из неё числа по одному;
• весь вывод собирается в StringBuilder — тысячи println работают в разы медленнее.
Checklist олимпиадника на Java:
1. Класс называется Main.
2. Большие значения — в long; в произведениях хотя бы один множитель приведён к long.
3. Строки сравниваются через equals, не ==.
4. Много данных — BufferedReader вместо Scanner, StringBuilder вместо println в цикле.
Курс завершён — поздравляем!
Откройте раздел «Обучение» и начинайте «Путь олимпиадника» с Уровня 1: сложность алгоритмов, задачи на реализацию и базовая математика. Удачи на соревнованиях!