Выбираем первый язык программирования
Да
т
У вас есть друзья?
i
Да
Т
Хотите много зарабатывать?
jL
Да
ш
Вы тупой?
т.
Т
Вы насмотрелись уроков ХАУДИ ХО?
/Г
Да
7
Python
Вам
г~ нравится 1
1 Windows?
Нет
Fortran
А они вам нужны?
Они тоже РНР
тупые?
Да
т
А основная польза от шаблонов - переиспользование кода - в олимпиадах вообще не нужна. Поэтому шаблонами никто и не пользуется особо.
Два конкретных примера (пруфов не будет, делать мне нечего кроме как все выходные тратить чтобы ты статейки с десятой страницы гугла мог почитать =) ):
Была статья на хабре про mlpack, может с пару месяцев назад, почему его предикторы на порядок быстрые других. Ответ: очень много колдунства с темплейтами, например все сортировки и поиски в матрицах написаны на них, компилируется все конечно под десяток часов, зато на выходе весь код заинлайнен, циклы развернуты, вектора для ссе собраны.
Другой пример из личного бложика какого-то хрена, читал год наверное назад. Задача такова: доска 9 на 9, на най играют твои и бот противника, время хода конечно ограниченно, рекурсивный поиск в ширину. Как перейти из топ 100 в топ 10? Продолжать поиск в щирину, но рекурсию в глубину нашаблонить чанками по ~10 уровней. Суть как и в первом случае, когда у тебя и противника уже код на пределе и идет нос в нос, выигрыш от инлайна и отсутствия "дорогих" вызовов рекурсии сразу дает тебе преимущество.
Паскаль уже никто не выбирает. В некоторых олимпиадах он вообще исключен из списков допустимых языков, благодаря чему я, в свое время, и перешел на плюсы. А вот пайтон практически везде был актуален, еще до того, как о нем начали дудеть из всех щелей. К тому же, насколько мне известно, он вообще может юзать сишные библиотеки, благодаря чему, если грамотно описать алгоритм, то разница в производительности будет отсутствовать совсем.
Во-первых, решение должно работать быстро и правильно. Во-вторых, надо написать его как можно быстрее. Что бы успесть решить больше задач, или получить больше очков (зависит от системы оценки).
Сейчас уже лучше балансируют тесты и ограничения, но лет 10 назад часто имело смысл переписать решение с Java на C++, если оно чуть чуть не проходит по времени.
А у джавы с плюсами в основном разница в использовании памяти, а не во времени. Не знаю как последние редации плюсов, но JVM оптимизирует все, благодаря захватыванию большего количества оперативы (главная причина почему байтоебство на джаве бессмысленно и беспощадно).