Вообще интересно что подразумевается под competitive programming. Если что-то из разряда спортивного программирования то питон - странный выбор. Производительность у него никакущая. Обычно паскаль или c++ выбирают.
Можно соревноваться в формате "кто больше отступов наебенит за время". И продавать клавиатуры с огрооомным спортивным табом
питон в этом плане очень читаем, особенно если код чужой
Я люблю питон, не совсем понимаю смысла такого спорта, но если парням нравится - им нужны спортивные табы, полюбасу
А что, идея для стартапа. Еще выпустить серию со спортивным капсом для SQLщиков
Педаль с табом, а лучше две.
Не соглашусь, пока кто-то будет воевать на плюсах с нулл поинтерами и нечитаемыми шаблонами, кто-то другой на питоне уже напишет всю математику и тесты. А переписать готовый питон на раст, паскаль или фортран это уже дело механики.
Сейчас может спортивное программирование поменялось. И резко начали писать шаблоны. Раньше, по-крайней мере когда я этим активно занимался, всякие вещи типа чтения из файла, выделения памяти под массив и прочего - было доведено до автоматизма у людей, которые писали под плюсы хотя бы больше пары месяцев. Поэтому непосредственно с кодом никто не сражался.
Тратить цпу на компиляцию шаблонов перед рантоймом или писать без шаблонов и тратить цпу в рантайме? Думаю, для "спортивного" программирования выбор очевиден. Ну и это, какое чтение файлов-то в спортивном программировании?
В сях не сильно шарю, так что не знал про такие подробности. Плюсы трогал уже только в универе, и то, на уровне троечника. Чтение/запись файлов input.txt/output.txt (обычно) - на всех уровнях от школьного до республиканского. Плюс такая же тема была и на USACO. Встраивание кода участника как модуля - было редкостью 11 лет назад.
В школе были файлы, а всякие кодфорсес и прочие ICMP - там stdin/stdout.
В школе, в универе на всяких acm icpc были файлы. Codeforces я особо не трогал, он в те времена не особо популярен был.
Эт да, я не молод, но как-то файлы не застал вообще, либо стд либо модули. Думал, товарищ гелиос о бенчмарках пишет.
Отстал от жизни. Опыт олимпиадного программирования небольшой, но шаблоны как-то не особо юзались. Всякая дичь из библиотеки и велосипеды. В основном, упор на алгоритмы, чтоб асимптотическая сложность не была жуткая.
Что ты там оптимизировать собрался в рантайме шаблонами? Эти всякие константные вычисления в рантайме, если надо - заменяются предподсчетом. Отдельная программа считает числа, они потом копипастятся в исходник. Гораздо быстрее чем писать эти шаблоны. И исходник меньше размером, что тоже важно - там же ограничения на размер есть.
А основная польза от шаблонов - переиспользование кода - в олимпиадах вообще не нужна. Поэтому шаблонами никто и не пользуется особо.
А основная польза от шаблонов - переиспользование кода - в олимпиадах вообще не нужна. Поэтому шаблонами никто и не пользуется особо.
гугл в помощь
Нет уж, гугл найдет 100500 абстрактных примеров использования шаблонов, ни один из которых не применим на олимпиадах. Еще раз - вместо константного шаблонного вычисления быстрее и проще подсчитать "руками" и вставить в код константу число. В промышленном программировании это плохо, потому что нечитаемо, но на олимпиадах немного другой сеттинг.
Если под "спортивным программированием" подразумеваются всякие олимпиады, то там язык вообще не имеет значения. Решает не производительность твоего решения, а то, с какой скоростью ты его написал.
Паскаль уже никто не выбирает. В некоторых олимпиадах он вообще исключен из списков допустимых языков, благодаря чему я, в свое время, и перешел на плюсы. А вот пайтон практически везде был актуален, еще до того, как о нем начали дудеть из всех щелей. К тому же, насколько мне известно, он вообще может юзать сишные библиотеки, благодаря чему, если грамотно описать алгоритм, то разница в производительности будет отсутствовать совсем.
Паскаль уже никто не выбирает. В некоторых олимпиадах он вообще исключен из списков допустимых языков, благодаря чему я, в свое время, и перешел на плюсы. А вот пайтон практически везде был актуален, еще до того, как о нем начали дудеть из всех щелей. К тому же, насколько мне известно, он вообще может юзать сишные библиотеки, благодаря чему, если грамотно описать алгоритм, то разница в производительности будет отсутствовать совсем.
Нет! Можно очень быстро накатать наивный метод и не получить ничего из-за time limit (или мнимальные балы, в зависимости от системы оценки).
Во-первых, решение должно работать быстро и правильно. Во-вторых, надо написать его как можно быстрее. Что бы успесть решить больше задач, или получить больше очков (зависит от системы оценки).
Сейчас уже лучше балансируют тесты и ограничения, но лет 10 назад часто имело смысл переписать решение с Java на C++, если оно чуть чуть не проходит по времени.
Во-первых, решение должно работать быстро и правильно. Во-вторых, надо написать его как можно быстрее. Что бы успесть решить больше задач, или получить больше очков (зависит от системы оценки).
Сейчас уже лучше балансируют тесты и ограничения, но лет 10 назад часто имело смысл переписать решение с Java на C++, если оно чуть чуть не проходит по времени.
Верю, хоть и не сталкивался. Сталкивался с тем, что неоптимальный алгоритм даже на плюсах при больших значениях, которые идут в тестах, стремиться к бесконечности.
Я чаще сталкивался с ситуациями когда человек пару часов ебался с одной простой задачей, ища в ней подвох, а в итоге можно было все сделать "в лоб".
А у джавы с плюсами в основном разница в использовании памяти, а не во времени. Не знаю как последние редации плюсов, но JVM оптимизирует все, благодаря захватыванию большего количества оперативы (главная причина почему байтоебство на джаве бессмысленно и беспощадно).
А у джавы с плюсами в основном разница в использовании памяти, а не во времени. Не знаю как последние редации плюсов, но JVM оптимизирует все, благодаря захватыванию большего количества оперативы (главная причина почему байтоебство на джаве бессмысленно и беспощадно).
Чтобы написать коммент, необходимо залогиниться