Введение
Олимпиадная программирование – отдельная область знаний и умений. В данном разделе будут рассматриваться примеры олимпиадных задач и их решение на языке PascalABC.NET. Для многих задач даётся подробный разбор.
Разбор олимпиадных задач
В первое время тут будут помещаться задачи, взятые с сайта acmp.ru
Тексты программ записаны в соответствии со сложившимися в мировой практике программирования традициями: содержательными именами, отступами, выявляющими структуру программы и т.п. В связи со своеобразной оценкой программ, принятой на сайте ACMP и привязанной не к эффективности, а к длине программного кода, не следует удивляться невысокому рейтингу, который будет там выставляться приводимым программам. Тем не менее, все приведенные решения задач были приняты тестирующей системой, т.е. полностью удовлетворяют набору тестов, а также критериям ограничений по времени и памяти.
Наша задача - показать, как программировать олимпиадные задачи, а не как их оформлять в соответствии с требованиями того или иного олимпиадного ресурса. Не нужно забывать, что олимпиада - это игра, соревнование, а не образовательное мероприятие и организаторы там устанавливают собственные правила.
Организация ввода и вывода
Сайт ACMP предлагает читать исходные данные из файла input.txt и помещать результаты в файл output.txt. Но значительно проще при отладке программы вводить данные с клавиатуры и выводить результаты на монитор и такие решения также принимаются. Если символьные данные во вводе не присутствуют, можно использовать как Read, так и Readln, в противном случае необходимо осознанное применение Readln. Подробности будут объяснены в конкретных задачах. Если при выводе явно не требуется смена строки, достаточно использовать Write (Print).