Центр развития одарённости «Перспектива»

Входное тестирования на определение знания основных алгоритмических конструкций (ветвления, циклы). Максимальная оценка 20 баллов
PascalABC.NET – это язык программирования Паскаль нового поколения, сочетающий простоту классического языка Паскаль, ряд современных расширений и огромные возможности платформы Microsoft .NET. PascalABC.NET разрабатывается под свободной лицензией LGPLv3 в первую очередь как язык программирования для сферы образования и научных исследований и вбирает в себя лучшее, что предлагают другие современные языки, такие как C#, Kotlin, Python, Haskell и другие.
Теория чисел — раздел математики, занимающийся изучением чисел непосредственно как таковых, их свойств и поведения в различных ситуациях. Тема «Целочисленная арифметика» в большей степени уделяет внимание целым числам, их свойствам и алгоритмам работы с ними, которые используются при решении олимпиадных задач.
\( \Downarrow \)Арифметические операции с целыми числами.
Пишем функцию проверки числа на простоту с временной эффективностью O(sqrt(n)). Основная теорема арифметики
\( \Downarrow \)Решето Эратосфена - это алгоритм, позволяющий найти все простые числа в отрезке \( [1; n] \) за \( O({n}log(log{n})) \) операций. Расширенный алгоритм Евклида
Лекции Константина Широкина (НИУ МИТЭ)
Структуры данных - это способы хранить и организовывать данные, чтобы эффективней решать различные задачи. Данные можно представить по-разному. В зависимости от того, что это за данные и что вы собираетесь с ними делать, одно представление подойдёт лучше других.
Никлаус Вирт, швейцарский ученый-информатик, в 1976 году написал книгу под названием «Алгоритмы + Структуры данных = Программы». Через 40 с лишним лет это тождество остается в силе.
Структура данных классифицируется как линейная структура данных, если её элементы образуют линейную последовательность, то есть её элементы упорядоченно располагаются слева направо (или сверху вниз). Наиболее часто применяемые линейные структуры данных в олимпиадном программировании - это статические и динамические массивы. Динамический массив во многом похож на статический, за исключением того, что динамический массив предназначен и адаптирован для изменения размеров массива во время выполнения программы. К наиболее широко используемым операциям над массивами относятся поиск и сортировка.
Для некоторых задач линейное хранилище - не лучший способ организации данных. С помощью эффективных реализаций нелинейных структур данных, вы можете работать с данными быстрее, тем самым ускоряя алгоритмы, которые основываются на них.
В основе map и set лежит такая нелинейная структура данных, как сбалансированное двоичное дерево поиска. Используя данные структуры данных можно получить производительность ,эквивалентную \( O(logn) \) для операций вставка/поиска/удаления.
Система непересекающихся множеств (на английском disjoint-set-union, или просто DSU).
Метод сканирующей прямой (англ. scanline) заключается в сортировке точек на координатной прямой либо каких-то абстрактных «событий» по какому-то признаку и последующему проходу по ним.
Он часто используется для решения задач на структуры данных, когда все запросы известны заранее, а также в геометрии для нахождения объединений фигур.