Недавно я узнал, что на Codeforces можно использовать prewritten code, в случае, если этот код написан тобой.
Хотелось бы задать вопрос Максиму Иванову (e-maxx) на каких условиях публикуются исходные коды на всеми нами любимом сайте e-maxx.ru, в том числе, могу ли я переформатировать его под предпочитаемый мною стиль и считать своим.
P. S.
Пользуясь случаем, я бы хотел выразить благодарность жюри соревнований за решение о моем допуске. Я бы хотел выразить благодарность всем, кто поддерживал меня или выражал свое мнение по вопросу. Кроме того, я хотел бы выразить личную благодарность некоторым людям (я это сделаю, как только получу от всех согласие) и создателям ВКонтакте за ресурс, который сделал возможным с ними связаться.
Удачи на кубке!
Спасибо, и Вам и вообще всем удачи на кубке!
ИМХО, лучше прочитать статью и самому все написать (при необходимости подглядывая некоторые детали реализации). P.S. Удачи на кубке.
Все мои материалы (статьи, код) — под Public Domain.
Вкратце — это означает, что любой может использовать материалы как угодно (перепубликовывать, редактировать, использовать в личных целях), я отказываюсь от всех прав на них.
Тут вопрос в том, считается ли использование твоих материалов жульничеством (когда человек выдает это за свой собственноручно написанный код).
Формально, не скопированный а перебитый своими руками код не считается жульничеством. И какая разница?
Прекрасно, где тогда граница между своим кодом и чужим?
Вот мы с Димой Матовым шаблон пишем одинаково. Я и думаю: кем из нас был написан тот шаблон, который я использовала сегодня :)
Вот и я не понимаю зачем это разграничивать.
Вопрос состоял именно в лицензии на код ;)
Ой, как много, оказывается, людей не умеют самостоятельно что-то писать.
Я например плюсанул за то что согласен с позицией. Я в принципе считаю что с такой же лицензией должны распространяться материалы всех прошедших соревнований к примеру. И еще много чего.
"Написание в 100500 раз алгоритма Дейкстры неинтересно" (ссылку на Egor потерял)
У меня есть подозрение, что эта цитата вырвана из контекста. Неинтересно в стопятисотый раз писать просто Дейкстру, а вот если этот алгоритм является составным кирпичом в задаче, то меня совершенно не напрягает ещё раз взять и написать его. Более того, мне кажется, что осознание того, что ты можешь взять и написать этот алгоритм за пару минут без багов, в некоторой степени приятно.
На вкус и цвет... Кому-то нравится проектировать дом, обсуждать, где будет комната для детей, где — подсобка, а где — что-то вроде гостиной.
А кому-то нравится раствор носить или кирпичи обжигать.
мне кажется если уж ты занимаешься сп, ты должен уметь и то, и другое
мне кажется если уж ты занимаешься сп, ты должен уметь и то, и другое
... проектировать дом и кирпичи обжигать...
Более того, мне кажется, что осознание того, что ты можешь взять и написать этот алгоритм за пару минут без багов, в некоторой степени приятно. Как кодер, не могу не плюсануть. Как у нас в команде обычно решается поток? Мне говорят, что нужен поток, я сажусь и за пару минут вбиваю стандартный код Диницы (ну или что там нужно), потом сокомандники, которые решали задачу, строят сеть и приспосабливают ее к моему стандартному коду. Profit — задача быстро сдана и каждый чувствует себя нужным.
Не вырвана. Если в задаче нужен, скажем, поток в качестве подзадачи, мне куда интереснее строить остальную часть решения, чем yet another раз писать поток. Ну, и как бы то, что я написал CHelper намекает
Не могу не вызарить полное не согласие с вашей точкой зрения.
Я вижу, что есть много сторонников вашей точки зрения (насколько я понял, также и Егора). Я действительно приверженец чистых спортивных контестов: без какого-либо prewritten-кода. Другое дело, что на таких соревнованиях, как ТЦ и КФ ваша позиция, как правило, приводит к лучшим результатам (что и понятно), поэтому я сам тоже иногда прибегаю к использованию чего-то написанного ранее.
Наверное, моя точка зрения сформирована под влиянием разных школьных олимпиад/АСМ-олимпиад, где ты приходишь и садишься за компьютер, и всё в твоих руках — либо ты сидишь и целый час вспоминаешь, как пишется Дейкстра или дебажишь декартово дерево, либо даже не замечаешь, как сам всё написал без багов и занимаешься интересной деятельностью — "строишь остальную часть решения".
Есть сторонники и твоей точки зрения. Я во время контестов не использую ни prewriten code ни google (хотя пару раз делал исключение).
Я могу прояснить свою точку зрения. Дело в том, что привычка все писать ручками приводит к плохим последствиям для дальнейшей реальной работы. Возникает сразу 2 проблемы: во-первых, привычка писать собственные велосипеды, во-вторых, при написании кода не оставляешь зацепок для дальнейшей универсализации — когда достаточно небольшого рефакторинга чтобы повторно его использовать в каком-то другом месте. С другой стороны, используемые алгоритмы надо знать, конечно, а не использовать бездумно
Я уверен, что умный человек может адекватно оценить, где собственные велосипеды уместны, а где нет. Со второй проблемой примерно также.. Код ведь пишется не просто так, а с какой-то целью. В соревнованиях обычно цель — написать что-то, что пройдет все тесты. В реальной же работе цель обычно куда более комплексная.
Например, для меня никогда не было проблемой в реальной работе то, что я вообще нигде не использую prewritten code во время соревнований (раньше как-то нигде и не разрешалось, а сейчас просто неинтересно), скорее, наоборот, привычки из профессионального опыта иногда на автомате не позволяют писать что-нибудь ужасно кривое, но вполне приемлемое для соревнований.
Умный человек вообще много чего может, однако с привычками потом приходится бороться, на это требуются какие-то ресурсы, которые можно было бы пустить на другие цели
Да, согласен. С этой привычкой достаточно сложно бороться, хотя мне было несколько проще (олимпиадами и промышленным кодом начал заниматься в один момент, и многое из опыта промышленного кода переносил в олимпиадный).
Про CHelper — задумываюсь над реализацией подобной штуки как плагина к студии, правда, в более примитивном виде — просто средство быстро добавить какой-либо код в решение. Есть идеи, например, как очень круто реализовать дерево отрезков, чтобы можно было любую задачу на него решать в 4 строки.
Еще следует заметить, что как Egor, так и AlexSkidanov — олимпиадники с большим стажем. Конечно, им уже надоело писать поток в 100500-й раз. Я полагаю, что школьникам и студентам это полезно уметь писать такие вещи руками. Где-нибудь посадишь баг, поразбираешься, лучше поймешь как работает код. Кроме того редко, но все-же встречаются задачи, где надо встроить что-то в стандартный алгоритм или использовать какую-то его фазу. В таком случае, без четкого понимания как все работает не обойтись.
Ну и да, сейчас меньше, но я хорошо помню это ощущение от быстрой и точной реализации сложного алгоритма, наверное, сравнимое с тем, что испытывает музыкант, исполняющий сложное произведение.
Не шали больше! =)
Мне совесть просто не позволит после такой поддержки сообщества.
Небольшой вопрос: А вы антиквиксорт каждый раз писали заново до этого?)