Комментарии 190
главное чтоб кроме олимпиады этот метод нигде не применять
Ага :)
Китайцы взломали сервер Пентагона. Каждый китаец попробовал один пароль. Каждый второй пароль был «Мао Цзедун». На 74357181-й попытке сервер согласился, что у него пароль «Мао Цзедун» %)
Китайцы взломали сервер Пентагона. Каждый китаец попробовал один пароль. Каждый второй пароль был «Мао Цзедун». На 74357181-й попытке сервер согласился, что у него пароль «Мао Цзедун» %)
вспомнил то же случай на зачете.Еще в первом курсе однокурснику дали задание, решишь получишь зачет, нет- на пересдачу. Так вот решение то же было write('да'); причем препод посмотрел код, сперва офигел, но потом ничего не сказав поставил в зачетку.
вспомнил еще его. Учитель сразу сказал, если не можете решить задачу уровня В, начинайте тупо подставлять значения 0,1,-1… и так до 5. вероятнее всего можно подобрать число
*ЕГЭ а не ЕГО :)
дааада, А-часть по большому счету вся так может прорешаться, с конца. а насчет олимпиад. в ЕГЭ ты просто завышаешь свой бал, никого не касаясь, а тут этой хитростью спускается народ на место ниже, некрасиво, лет 5 назад, когда я выступал, код после просматривали, что то подобное — баллы снимали, справедливо.
Мне пришлось похожий подход применить при защите магистерской работы в институте: самой работы оставалось еще много (комбинация динамического программирования и генетического алгоритма для решения кинематических задач положения манипулятора робота — вкратце суть), а времени как обычно — в обрез.
Необходимо было просчитать точки в пространстве, по которым будет перемещаться рабочий орган манипулятора для нескольких «тестовых» конструкций манипуляторов и положений препятствий. Алгоритм перемещения был реализован, а вот алгоритм поиска точек — нет. Пришлось указывать эти точки прямо в коде программы. Сдать ведь нужно было…
Впрочем, после успешной сдачи и ее празднования я эту задачу все-же решил (для себя)
Необходимо было просчитать точки в пространстве, по которым будет перемещаться рабочий орган манипулятора для нескольких «тестовых» конструкций манипуляторов и положений препятствий. Алгоритм перемещения был реализован, а вот алгоритм поиска точек — нет. Пришлось указывать эти точки прямо в коде программы. Сдать ведь нужно было…
Впрочем, после успешной сдачи и ее празднования я эту задачу все-же решил (для себя)
а в Днепропетровской области делают code review на областных. Или делали лет пять назад, по крайней мере. Жаль, что у вас культура олимпиад в таком упадке.
Я бы не сказал, что проблема в этом. Просто задачи нужно было лучше формулировать, чтобы разнообразнее выводы получались.
А code review что… если бы у нас он был победителей можно было бы назвать и без олимпиады, учитывая организационные моменты.
А code review что… если бы у нас он был победителей можно было бы назвать и без олимпиады, учитывая организационные моменты.
тоже правда. А тексты задач у вас остались?
Да это давно было. Там еще прикол был такой, что задачи на отборе на всеукраинскую были два года одними и теми же :) При чем в одной школе киевской их разбирали три года назад для всех.
На всеукраинскую в результате ехали не самый умные, а самые информированные ученики и самые любимые ученики информированных учителей :)
На всеукраинскую в результате ехали не самый умные, а самые информированные ученики и самые любимые ученики информированных учителей :)
на городской четыре года назад не делали
я так половину баллов по одной задаче получил :)
я так половину баллов по одной задаче получил :)
четыре года точно не делают)
Упала не столько культура, сколько интерес и уровень подготовки к ним со стороны как организаторов, так и участников. Готовить некого нынче (знаю по себе).
Упала не столько культура, сколько интерес и уровень подготовки к ним со стороны как организаторов, так и участников. Готовить некого нынче (знаю по себе).
Могу точно сказать что 5 лет назад (как и 4 и 3) ничего подобного не было. Такое решение не нарушает правил а лишь показывает недальновидность автора задачи
Я когда учился в школе, ездил на московскую командную олимпиаду по информатике. Там мы тоже освоили этот метод, и попали в итоге на всеросийскую. Там, видимо, этот метод знали все %)
Ага :) По опросам моим кто честно пытался решить все не прошли.
Просто нужно формулировать задачи так, чтобы не было возможности такого дела, а раз не сформулировали — не пользоваться этим не только честность, но и тупость.
Просто нужно формулировать задачи так, чтобы не было возможности такого дела, а раз не сформулировали — не пользоваться этим не только честность, но и тупость.
Как не странно, такой «метод» решения задачи чуть ли не официально был продекларирован на той самой всероссийской олимпиаде.
Однако, там с ним ловить было нечего — команда-победитель решила все задачи чисто.
Однако, там с ним ловить было нечего — команда-победитель решила все задачи чисто.
Снова же по моим наблюдениям решали чисто в основном те, кто некие требуемые для решения специфичные алгоритмы уже разбирал не раз при подготовке. Задачи необычные (иногда попадались) не решали в равной мере все, а если решали — то либо действительно умные, либо методом подбора :)
На всероссийской олимпиаде я понял, что лишний на этом празднике жизни, когда начали разбирать решение задачи. Разбор сводился к фразам типа «ну, здесь надо было просто пустить волну и рассчитать получившиеся веса» или «здесь надо применить преобразование Страшнофамильного-Дикоумного, после чего агрегировать положительные результаты». Это сейчас, по прошествии 6 лет, я дико умный и способен это понять, но для меня тогда был шок.
Очень тебя понимаю.
Когда-то заняв 1е место на городе я должен был проходить тренировки перед республиканской. Но тренер так и не появился(уже не помню почему), и я поехал как есть, занял какое-то место посередине.
После чего мне попала в руки его книга в которой он описывал базовые алгоритмы (графы, быстрые сортировки и т.п.), которыми фактически решалось 100% задач республиканской и городской олимпиады.
До сих пор на него обижен — мне на республике тогда тупо не хватало времени на придумывание неглючной реализации. Собственно республику прошли те, у кого этот тренер вел информатику.
Когда-то заняв 1е место на городе я должен был проходить тренировки перед республиканской. Но тренер так и не появился(уже не помню почему), и я поехал как есть, занял какое-то место посередине.
После чего мне попала в руки его книга в которой он описывал базовые алгоритмы (графы, быстрые сортировки и т.п.), которыми фактически решалось 100% задач республиканской и городской олимпиады.
До сих пор на него обижен — мне на республике тогда тупо не хватало времени на придумывание неглючной реализации. Собственно республику прошли те, у кого этот тренер вел информатику.
Вас послушать, так эти алгоритмы кто-то куда-то прячет и никому не показывает.
Я тогда не знал о существовании каких-то заранее придуманных алгоритмов вообще и о том, что их можно искать. В школе учили как заполнять формулы в Экселе, а программированию я учился самостоятельно по одинокой книжке по паскалю, в которой ничего не было толком.
У меня сейчас на столе лежит книжка по графам.
Толстенная, 1100 страниц. Все алгоритмы, как на ладони.
Другой вопрос, что в 16 лет у меня не было этой книжки. А сам я был не настолько умным, чтобы понять ее. Даже сейчас этот аппарат дается мне с трудом.
Толстенная, 1100 страниц. Все алгоритмы, как на ладони.
Другой вопрос, что в 16 лет у меня не было этой книжки. А сам я был не настолько умным, чтобы понять ее. Даже сейчас этот аппарат дается мне с трудом.
Как называется?
Реально, колись, что там за такая книга…
у тебя был преподавателем Дэвид Кнут?
НЛО прилетело и опубликовало эту надпись здесь
Не совсем.
Есть набор тестов. За прохождение каждого теста по каждой задаче дается n баллов, за каждую попытку снимается m баллов.
По крайней мере, у нас было именно так.
Есть набор тестов. За прохождение каждого теста по каждой задаче дается n баллов, за каждую попытку снимается m баллов.
По крайней мере, у нас было именно так.
Это по системе ACM, тогда ещё за каждую дополнительную посылку даётся бонус в 20 минут штрафных и зачёт ведётся в первую очередь по количеству решённых задач, а затем — по штрафному времени.
Есть ещё так называемая «школьная» система, когда количество посылок ни на что не влияет, а баллы начисляются за прохождение тестов. Чем больше прошёл — тем больше баллов, так что можно выехать и на не полностью решённых случаях.
Есть ещё так называемая «школьная» система, когда количество посылок ни на что не влияет, а баллы начисляются за прохождение тестов. Чем больше прошёл — тем больше баллов, так что можно выехать и на не полностью решённых случаях.
Аналогично делал. Было 6 задач… Нужно было выбирать пары точек, принадлежащие окружностям, которые пересекаются. Пару штук на последних тестах прошли. Вот и думаю, неужели мне так может повезти =).
Кстати, на Ъ-конкурсе по программированию — ACM — задача засчитывается только если проходит все тесты.
Я вааще не представляю как можно по другому :)
Я участвовал в нескольких… там было только так и не иначе. И все эти хитрости ни у кого не проходили. Правда было разок… наш алгоритм прошел все тесты, но был неправильным :) (организаторы не смогли обьяснить это) Но это было исключение из правил.
Я участвовал в нескольких… там было только так и не иначе. И все эти хитрости ни у кого не проходили. Правда было разок… наш алгоритм прошел все тесты, но был неправильным :) (организаторы не смогли обьяснить это) Но это было исключение из правил.
Олимпиады уже не те… Раньше такой метод позволял набрать процентов 10, а на сложных задачах вообще ничего, и проверки тоже были автоматические…
Олимпиады все те. Просто они разные в разных местах. Ну и масштабы важны. Я думаю на ВсеУкраинской такой метод не покатит уже.
Не расстраивайтесь, например у нас (Донецкая область) подобные решения могут от силы 10% набрать, тесты проверяются в группах.
Именно в Донецке я и участвовал ))
Судя по вашей дате рождения, вы довольно давно участвовали. Поверьте, сейчас у нас много чего изменилось, меньше давления со стороны руководства на жюри позволяет более правильно подходить к составлению и проверке задач.
в саратовских олимпиадах лет 7 назад тестирование программ проводилось несколько раз и программы-заглушки, выдающие случайные числа в ответах, отсеивались.
Во второй программе ошибка, пропущена скобка :)
сейчас на ломоносовской заочной по информатике сделали по-другому — начальное тестирование с базовыми данными, а конечное (после завершения приема решений) — прогоняют по «секретным» данным
У нас в школе банально не было приглашений на олимпиады по информатике или программированию.
А на олимпиады по русскому, литературе и математике — были.
Когда учился в школе сильно расстраивался этому факту.
А на олимпиады по русскому, литературе и математике — были.
Когда учился в школе сильно расстраивался этому факту.
Думаю, что и приглашения были, просто руководство школы считало, что Ваше учебное заведение гуманитарное, поэтому и не доводили до учеников эту информацию. Зато, наверное на олимпиадах по русскому языку Ваши одношкольники рвали математиков :)
Я учился в гуманитарной школе (с углубленным изучением немецкого языка), ни на какие олимпиады по языкам нас ни разу не посылали.
За все десять лет обучения мне довелось с приятелем побывать лишь на олимпиаде по химии :)
За все десять лет обучения мне довелось с приятелем побывать лишь на олимпиаде по химии :)
Ужас какой. А с другой стороны, ну какой смысл было соревноваться с Вами учащимся других, простых школ?
Которое знаеют только «йес киргиз» и «шпрехензидович»? :)
Которое знаеют только «йес киргиз» и «шпрехензидович»? :)
Да ладно мы лабораторные по программированию еще хлеще сдавали. Понятно что ответ в задаче известен, дык мы написали правдоподобную программу которая никак не хотела работать, а сдавать лабу надо придумали простое решение.
+------------------------+
| | |
+------------------------+
| | |
упс. инет тупанул.
Да ладно мы лабораторные по программированию еще хлеще сдавали. Понятно что ответ в задаче известен, дык мы написали правдоподобную программу которая никак не хотела работать, а сдавать лабу надо придумали простое решение.
Слева на экране был текст неработающей программы, а если долго скроллировать экран вправо то там стояли обычные printf(); которые выводили именно то что нужно было. Препод был настолько поражен, что ЯВНО не работающая программа выводила корректный результат, что аж пеной изошелся, но зачот поставил.
Да ладно мы лабораторные по программированию еще хлеще сдавали. Понятно что ответ в задаче известен, дык мы написали правдоподобную программу которая никак не хотела работать, а сдавать лабу надо придумали простое решение.
Слева на экране был текст неработающей программы, а если долго скроллировать экран вправо то там стояли обычные printf(); которые выводили именно то что нужно было. Препод был настолько поражен, что ЯВНО не работающая программа выводила корректный результат, что аж пеной изошелся, но зачот поставил.
У нас пока преподу не обьяснишь как твоя программа работает, он тебе лабу не зачтет, пусть она хоть сто раз правильные ответы выдает =)
можно ведь и все по алгоритму написать. Но будет какая-то загвоздка, из-за которой правильный езультат ну никак не хочет получаться. В этом случае и препод смотрит на листинг, и ты ему подробно показываешь, объясняешь каждую строчку. У нас так и было. Но обозначенный выше метод со скроллированием меня спас.
Конечно, я его не всегда применял. Либо честно писал сам программки, либо переписывал у кого-нить. Данный метод я единожды использовал.
Конечно, я его не всегда применял. Либо честно писал сам программки, либо переписывал у кого-нить. Данный метод я единожды использовал.
Просто как обычно бывает, красивой девушке которая нифига не понимает в программировании, делает лабу мальчик бот, но препод просекает фишку и не ставит ей зачет, вот из за таких преподов у нас ко второму курсу красивых девушек в группе не осталось =(
НЛО прилетело и опубликовало эту надпись здесь
за что я и любил C++ в универе, а не паскаль :)
Если еще одна хитрость — pregenerated results. Если никак не получается придумать алгоритм, который укладывается в заданное время и входные данные ограничены — предварительно рассчитываем ответы, а результаты пишем в исходный код. Программа получается такая: большой массив с данными и что-то вроде «read(x); write(data[x]);»
А как предварительно расчитать? Это когда ввод известен заранее?
Ну с прекальками тоже можно бороться, обычно лимит на размер кода. В топкодере — лимит на неиспользуемый код. Но не скрою, что сами порой прекальк запускали.
Иногда это единственный метод. Причём не на олимпиадах, а в жизни. Очень быстрый и выдающий ответы с заданной точностью. Я для управления индукционной печью использовал, когда известны были только обратные, весьма сложные зависимости (частично — экспериментальные табличные данные) и написать прямую функцию не представлялось возможным. Зато можно было аппроксимировать известные данные кривыми гаусса и «нарезать» их с нужной точностью.
Читер
По первому методу — часто решениям, прошедшим только тесты на 0 или аналогичные ответы, дают 0 баллов (мы на нижегородской городской делаем так).
По второму — что бы обойти перетестирование и выбор худего результата лучше считать хэш от входных данных и на его основании выбирать 1 или 2.
По второму — что бы обойти перетестирование и выбор худего результата лучше считать хэш от входных данных и на его основании выбирать 1 или 2.
Картинка к посту отличная :) Передает настроение)
Рашн смекалка! :) Автор молодец, улыбнул!
Говорят, на одной из мировых олимпиад победила индийская команда. Задача состояла в предсказании того, какая будет завтра температура. Индусы написали программу, суть которой сводилась к:
1. Ждать 24 часа.
2. Смерить температуру.
1. Ждать 24 часа.
2. Смерить температуру.
НЛО прилетело и опубликовало эту надпись здесь
Я думаю Политический лицей справился бы с задачей еще лучше. Они бы не стали даже искать ответы, просто убедили бы проверяющих, что именно их программа гарантировано на 100% дает правильные ответы :)
НЛО прилетело и опубликовало эту надпись здесь
У нас в университете олимпиада проходила, так там при первом же уровне и код осматривали, и тестовые входные-выходные параметры не все давали, и последние задания уже не такие консольные — нарисовать часы или экономическую задачу решить, моделирующую поведение в олигополии.
Надеюсь, это была школьная олимпиада у вас.
Надеюсь, это была школьная олимпиада у вас.
А у нас тесты были. И секретная база с ответами под паролем. Препод охранял свой пароль и прикрывал рукой клаву чтобы никто не видел.
Правда это не помогло когда я на машину поставили кей спу который записал его пасворд. Потом несколько параллельных курсов сдавали тест из 500 ответов. Очень помогло. Особенно когда стало ясно что если отвечать на все вопросы правильно по базе все равно не набирается 100% результата.
Правда это не помогло когда я на машину поставили кей спу который записал его пасворд. Потом несколько параллельных курсов сдавали тест из 500 ответов. Очень помогло. Особенно когда стало ясно что если отвечать на все вопросы правильно по базе все равно не набирается 100% результата.
НЛО прилетело и опубликовало эту надпись здесь
Если закономерность верная — то твое решение лучшее.
К примеру задача на printf(«Yes»); — это лучшее решение, если в каментах объяснено, почему так.
Т.е. это решение уже оптимизировано ;)
К примеру задача на printf(«Yes»); — это лучшее решение, если в каментах объяснено, почему так.
Т.е. это решение уже оптимизировано ;)
Помоему проще case ;-)
Суть поста, имхо, не сдаваться никогда и ни при каких обстоятельствах. Не можешь сделать на 100% идеально, сделай на 90% (на 50, на 20, или хоть на 1, в конце концов!). Это значительно лучше чем круглый ноль и полный пролёт.
НЛО прилетело и опубликовало эту надпись здесь
Особенно обидно, когда таких умников пол офиса сидит,
а ты с очередным их «write(0)» идёшь к заказчику ))))
а ты с очередным их «write(0)» идёшь к заказчику ))))
поддерживаю, меня вот заколебало что на главную попадает всякий шлак. какую смысловую нагрузку несет данный пост? что хотел поведать автор? кроме как заявить «а я тоже олимпиадник и такой умный что попал на всеукраинскую олимпиаду»… тьфу
НЛО прилетело и опубликовало эту надпись здесь
Для тех людей, которые «в теме» «хитрость» автора не является хитростью как таковой, это — один из известных приёмов, которым каждый когда-то пользовался. Тем более, те организаторы, которые заинтересованы не допускать подобные решения с помощью группировки тестов не допускают их.
Так что, получается, результатом поста автора явилась только полемика об олимпиадах, что, в принципе, неплохо для тех, кому есть что сказать.
Так что, получается, результатом поста автора явилась только полемика об олимпиадах, что, в принципе, неплохо для тех, кому есть что сказать.
Я один раз учавствовал в олимпиаде по информатике в 9 классе. Решили что смогли, много думали, а в итоге победили ученики организаторов этой олимпиады. Даже стало противно. А хитрость нужна была на входе в школу, где проводили олимпиаду и не пускали никого без сменки. Ну да ладно, зашли с черного входа =)
у нас когда была олимпиада по информатике городская, сами тесты и ответы на них были только у представителей гороно, которые и проверяли правильность работы программы
а какой район?
Хаха) Класс.
Интересно, а «по-нормальному» там бы большой код получился?
По поводу наглого подхода. Вы знаете, если для полноценного решения задачи требуется написать «Write(0);», я думаю, это и надо сделать. Круто.
Вам нужно идти в agile-разработчики :)
Интересно, а «по-нормальному» там бы большой код получился?
По поводу наглого подхода. Вы знаете, если для полноценного решения задачи требуется написать «Write(0);», я думаю, это и надо сделать. Круто.
Вам нужно идти в agile-разработчики :)
Был в прошлом году на олимпиаде в УГТУ в Екб на подобной олимпиаде, человек занявший первое место некоторые задачи решил также.
ИМХО, вполне нормальное решение. Т.е. есть входные данные, на некоторые входные данные программа выдаёт правильные ответы. Правда, на моих всероссах по-моему ещё дополнительное условие ставили — для одных входных данных программа обязана выдавать те же выходные данные))
Помню ещё одно хитрое решение… На одну задачу было написано решение. Решение 100% давало правильный ответ, но не проходило по времени. Оптимизации не помогали, а так как количество входных данных были достаточно ограничено, то было принято решение дописать эту прогу с тем, чтобы оно генерировало другую прогу, где для каждых возможных входных данных были предрасчитаны выходные, а сама программа заключалась лишь в поиске в одном массиве введенного числа и вывод результата из другого массива. Программа благополучно прошла все тесты.
Помню ещё одно хитрое решение… На одну задачу было написано решение. Решение 100% давало правильный ответ, но не проходило по времени. Оптимизации не помогали, а так как количество входных данных были достаточно ограничено, то было принято решение дописать эту прогу с тем, чтобы оно генерировало другую прогу, где для каждых возможных входных данных были предрасчитаны выходные, а сама программа заключалась лишь в поиске в одном массиве введенного числа и вывод результата из другого массива. Программа благополучно прошла все тесты.
Представляю участника с таким выражением лица, сдающего решения :-)
Вы удивитесь, но я точно также в свое время занял второе место :) Моя хитрость была в том, что один из тестов, которые проходили программы, был дан в качестве примера в самом задании.
Как-то слабовато у вас там на Украине. В Беларуси на республиканских и областных олимпах, насколько я знаю, с любого рода заглушками активно борются.
а по моему это не хитрость, а тупость.
очень популярный метод, когда учился в университете, некоторым преподавателям именно такие программы и писали.
Я помню баловался тем (на несерьёзной олимпиаде) что сдал прогу, которая ищет файлы с тестами, и угадывает имя с файлом ответа. Копирует в выходной файл, и телемаркет. :-D
Многие наверяка видели уже, но всё-таки: Вот что значит «хитрый»!
www.youtube.com/watch?v=G1bziMXs_hs
www.youtube.com/watch?v=G1bziMXs_hs
Как только увидел, что участник олимпиады, сидящий за соседним компом тупо жмет ENTER (не вводя никаких данных при каждом запросе), а его программа выдает достоверные ответы,
с олимпиадами по информатике решил завязать)
с олимпиадами по информатике решил завязать)
Никогда не забуду величайший облом на областной олимпиаде по программированию…
Решил 3 задачи из 4, причем потом нам рассказывали решения, у меня эти 3 были решены вобщем то правильно.
НО, я помимо вывода в файл делал вывод результата на экран. Про ограничение по времени меня никто не предупреждал. Ни одна программа не прошла тест, ибо вывод на экран, естессно, занимал много времени =(
Ну неужели это было так сложно, правила объяснить ПЕРЕД олимпиадой, а не при подсчете результатов?
Решил 3 задачи из 4, причем потом нам рассказывали решения, у меня эти 3 были решены вобщем то правильно.
НО, я помимо вывода в файл делал вывод результата на экран. Про ограничение по времени меня никто не предупреждал. Ни одна программа не прошла тест, ибо вывод на экран, естессно, занимал много времени =(
Ну неужели это было так сложно, правила объяснить ПЕРЕД олимпиадой, а не при подсчете результатов?
Все таки там есть эврестическая проверка. Говорил тока что со всероссийским олимпиадником этого года.
И да у нас на области было весело. Олимпиаду проводила наша школа. И пришла девушка. Вся такая неформальная. Досидела до конца. Всем интересно. Начали смотреть сорцы. А там стихи. Стихи на транслите. Даже целые рассказы. Что-то вроде — «Чип Чип Чип и Дейл спешат на помощь!» Мы были все в осадке. Теперь это у нас легенда. xD
И да у нас на области было весело. Олимпиаду проводила наша школа. И пришла девушка. Вся такая неформальная. Досидела до конца. Всем интересно. Начали смотреть сорцы. А там стихи. Стихи на транслите. Даже целые рассказы. Что-то вроде — «Чип Чип Чип и Дейл спешат на помощь!» Мы были все в осадке. Теперь это у нас легенда. xD
Во-первых, на хабре есть несколько человек, жюри олимпиады. И зря Вы написали здесь о Вашей «уловке».
Во-вторых, прикол с выводом «0» достаточно старый. Чаще всего проверяют в таких задачах на вывод одного ответа. Странно, что у Вас прошло.
В-третьих, тесты пропускаются 3 раза(насколько помню). Слабо верится, что Ваша программа дала три одинаковые рандомайзы…
Во-вторых, прикол с выводом «0» достаточно старый. Чаще всего проверяют в таких задачах на вывод одного ответа. Странно, что у Вас прошло.
В-третьих, тесты пропускаются 3 раза(насколько помню). Слабо верится, что Ваша программа дала три одинаковые рандомайзы…
А мне интересно, в код программы жюри никогда не смотрит?
На отборах на всеукру смотрят. На Киевской — нет.
о, какие люди) кста, а кто нынче в жюри?
kievoi.narod.ru/
Тут вся инфа. заодно результаты автора узнать)
Тут вся инфа. заодно результаты автора узнать)
Смотрите уточнение по второму.
Интересно, почему зря? Использование подобных эвристик — довольно известный приём, причём, на сборах на Всеукраинку нас учили, что если не успеваешь написать полностью программу, пиши эвристику, авось наберёт сколько-то баллов.
Из за такого вот хитёрства российские дипломы (начиная с олимпиадных, заканчивая ВУЗовскими) и обесценились на рынке труда. Нормальный человек бы постыдился, что обманывает, а тут поют дифирамбы, менталитет-с.
это не обман, а один из вариантов решения поставленной задачи.
— Сынок, сходи за хлебом
Сынок пошел и ограбил магазин. Это тоже один из вариантов решения поставленной задачи. По-моему, некоторые технари со своей однобитной логикой очевидных вещей понять не могут: не все способы одинаково полезны.
Сынок пошел и ограбил магазин. Это тоже один из вариантов решения поставленной задачи. По-моему, некоторые технари со своей однобитной логикой очевидных вещей понять не могут: не все способы одинаково полезны.
Это действительно один из вариантов решения задачи. Если никаких ограничителей вроде того, чему сынка учили раньше, нет.
Про полезность способов никто ничего не говорил. Поставлена задача, вы ее решаете «хитростью». В контексте олимпиад это решение будет абсолютно корректным. Ваш пример про мальчика-грабителя слишком притянут за уши.
А по-моему, это вы сотоварищи находитесь в состоянии изменённого сознания, когда обман, враньё и подлость принимаются за добродетель — цель то достигнута. Нормальная система образования расценивает это именно как cheating — и карает за него самым суровым образом. Поэтому ТАМ дипломы и награды — ценны, у НАС — ими можно в сортире, простите, попу подтирать. И это факт — ни одному ВУЗу эти дипломы на фиг не сдались, чай не девственницы в приёмных комиссиях сидят и понимают что к чему. А вы — продолжайте решать поставленные задачи любыми способами, всё равно профита, благодаря вашим усилиям, никакого уже нет.
Dixi.
Dixi.
Лол. Вы поймите, что речь в топике идет про школьников в основном и для такого возраста «хитрить» данным образом это абсолютно нормально. А Вы же тут раздуваете из мухи слона, истерию какую-то разводите.
>абсолютно нормально
Как со стенкой.
Как со стенкой.
Выдрать фразу из контекста и использовать ее как аргумент — это шикарно.
Бог с вами, истерите дальше.
Бог с вами, истерите дальше.
Ну блин, контекст двумя строчками выше находится, кому надо, прочтет. Я про то, что нефиг на возраст списывать: врать ни в каком возрасте не хорошо.
Вспомнился такой же хитрый студенческий случай.
Преподаватель требует на зачет лабораторный блок питания. Вход 220 выход 12. Напряжение должно быть стабильное, без фона и пульсаций.
Студент заводит 220 на неоновую лампу, 12 выдает с батареи. Все это в красивой коробочке, гайки совершенно случайно покрыты толстым слоем краски.
Зачет в кармане.
Преподаватель требует на зачет лабораторный блок питания. Вход 220 выход 12. Напряжение должно быть стабильное, без фона и пульсаций.
Студент заводит 220 на неоновую лампу, 12 выдает с батареи. Все это в красивой коробочке, гайки совершенно случайно покрыты толстым слоем краски.
Зачет в кармане.
Такой подход к программированию, как к роду деятельности, у меня лично вызывает недоумение (а если автор этой статьи программер то и опасения ), — зачем участвовать в олимпиадах и использовать такие не олимпийские методы? Ради диплома призёра, которого вы честно не заслужили, а воспользовались идиотизмом тех, кто так проверяет задачи?
Диплом был мне не нужен, а вот возможность прогуливать школу всвязи с тем, что я попал на отбор на всеукраинскую — да, пригодилась :)
Я отвечу вам. Дело в том, что олимпиады по программированию на самом деле далеки по сути от реального практического программирования. Рассматривайте олимпиаду как одну практическую задачу в которой ваша цель — набрать как можно больше баллов с помощью любых доступных средств в рамках правил. Олимпиады как раз и призваны развивать нестандартных подход и абстрактное мышление у людей.
Это не есть развитие нестандартного подхода, это развитие подхода _неправильного_. Нестандартный подход подразумевает правильное решение нестандартныви методами. В данном случае решение заведомо неверное и автор об этом прекрасно знает.
Просто умозрительно, — представим ситуацию. Человек поступил, отучился пошёл на работу, — и ситуация 1 в 1, проект заканчивается время поджимает — алгоритм не получается а сдавать надо или завалишь всё и свой и труд других людей… и будет огромный соблазн написать такую затычку как было показано, просто не хотелось бы чтобы умозрительная контора в которой работает этот умозрительный человек занималась например разработкой авионики или системами управления транпортом.
Просто умозрительно, — представим ситуацию. Человек поступил, отучился пошёл на работу, — и ситуация 1 в 1, проект заканчивается время поджимает — алгоритм не получается а сдавать надо или завалишь всё и свой и труд других людей… и будет огромный соблазн написать такую затычку как было показано, просто не хотелось бы чтобы умозрительная контора в которой работает этот умозрительный человек занималась например разработкой авионики или системами управления транпортом.
Вы всё равно смешиваете понятия. На олимпиаде существуют правила, часто гораздо более жёсткие, нежели в реальных высокоуровневых проектах. Наиболее важные — ограничения по памяти, времени работы и времени разработки. Задача участника не только понять, как правильно решать задачу, его задача — найти золотую середину, которая будет удовлетворять ограничениям и наберёт наибольшее количество баллов. Вы делаете упор на правильность решения. Правила ACM не допускает даже малейшей неточности в решении. Но школьные олимпиады — другое дело. Тут у участника больше свободы в выборе. И если он заранее неправильно решает задачу, но при этом получает наибольший выигрыш в целом, то он поступает полностью правильно. К тому же, вы, наверное, и сами можете придумать кучу реальных ситуаций, в которых идеальная точность решения не стоит времени и ресурсов, затраченных на его разработку. Хотя решать это, конечно, должны не рядовые кодеры, а руководители проекта.
Тут не с заглушками бороться надо, а задачи писать такие, чтобы вероятность угадать ответ была почти нулевая и заглушку писать было бессмысленно. Когда я участвовал в школьных олимпах (Беларусь), на любой более-менее серьезной олимпе старались так делать.
И я не понимаю, как можно бороться с такими заглушками? Это что, не по правилам? Ведь участник всегда может сказать, что он придумал мега-доказательство того факта, что ответ всегда 0 (то, что оно неправильно, это уже второй вопрос). И по идее, жюри не имеет права ничего ему сделать.
Кстати, прекалькуляция — это тоже не трюк, а вполне нормальный метод. У нас в Беларуси были даже задачи, которые предполагали прекалькуляцию по своей сути. Но это были задачи, которые в лоб не решишь и тут выигрывал тот, кто лучше организовал эту самую прекалькуляцию.
И я не понимаю, как можно бороться с такими заглушками? Это что, не по правилам? Ведь участник всегда может сказать, что он придумал мега-доказательство того факта, что ответ всегда 0 (то, что оно неправильно, это уже второй вопрос). И по идее, жюри не имеет права ничего ему сделать.
Кстати, прекалькуляция — это тоже не трюк, а вполне нормальный метод. У нас в Беларуси были даже задачи, которые предполагали прекалькуляцию по своей сути. Но это были задачи, которые в лоб не решишь и тут выигрывал тот, кто лучше организовал эту самую прекалькуляцию.
На одной из олимпиад была задача, связанная с календарем. Среди решений попалось очень оригинальное: парень переводил системные часы, устанавливая требуемые даты. Затем спрашивал у системы день недели и проверял условия.
Задачу не засчитали, хоть она и проходила все тесты.
Задачу не засчитали, хоть она и проходила все тесты.
Странная тестирующая система. Обычно запускаются в своеобразной «песочнице» и доступа ни к каким ресурсам нет.
Так ты попал на всеукраинскую олимпиаду? И в каком году это было.
Это известный приём, я о нём много лет назад читал, при подготовке к школьной олимпиаде (областной). Странно, что у Вас в Украине не проверяют такого…
И на любых олимпиадах (напр., математических) в виде тестов может сильно помочь :)
И на любых олимпиадах (напр., математических) в виде тестов может сильно помочь :)
Я член жюри города Донецка (один из областных центров Украины). Так вот, уже несколько лет в подобных задачах используется группировка нескольких ответов в один. Тест считается пройденным, если вся группа ответов идентична эталонной. На простых группах тестов эвристики теоретически могут пройти, но человек, так решивший задачу не наберёт больше 10-20% баллов.
Это называется мультитест, в АСM тоже нередко бывает. Помогает усложнить задачу участников :) тем, что неизвестно точно, на каком тесте падает решение, и прошло ли оно дальше после предыдущей правки (несколько приближает к условиям финала ACM ICPC). Кроме того, позволяет устанавливать более гибкие/хитрые ограничения на время выполнения, ну и по мелочам…
Я рад, что Вы это используете, но для решения проблемы именно этого «такого хитрого плана» достаточно просто немного по-другому составлять задания/тесты. Желательно учитывать плюсы и минусы каждого подхода.
Я рад, что Вы это используете, но для решения проблемы именно этого «такого хитрого плана» достаточно просто немного по-другому составлять задания/тесты. Желательно учитывать плюсы и минусы каждого подхода.
ACM всё же сильно отличается от подхода к школьникам. Тут как раз нужно не усложнять задачу, а не допустить возможность набирания тривиальными решениями большого количества баллов.
Фактически, в нашем случае, «мультитест» и достигается изменением условия задачи — добавляется во входных данных количество тестов, затем подряд следуют исходные данные каждого теста.
Полностью отказаться от этого нельзя, ведь бывают действительно хорошие задачи, решением которых, тем не менее, является конечное небольшое множество заранее известных ответов.
Фактически, в нашем случае, «мультитест» и достигается изменением условия задачи — добавляется во входных данных количество тестов, затем подряд следуют исходные данные каждого теста.
Полностью отказаться от этого нельзя, ведь бывают действительно хорошие задачи, решением которых, тем не менее, является конечное небольшое множество заранее известных ответов.
Я про это и говорю: нужно учитывать, зачем применяется тот или иной приём. Мультитесты так и организованы, как Вы говорите: нескользо вариантов входных данных в одном файле, для каждого — вывод в выходном, полученный применением одного и того же алгоритма (собственно, решения) ко всем входам. Проверяется целиком выходной файл, если хоть один ответ не совпал — тест не пройден.
От задач никто не предлагает отказываться, просто чтобы не усложнять школьникам задачу введением мультитестов, часто достаточно просто немного изменить задачу, расширив диапазон ответов, избавившись от наиболее приоритетных ответов. Например, формулировать вопрос задачи не «существует ли», а «сколько таких».
Понятно, что изменять задачи, делать тесты, сложнее, чем просто свалить их в кучу, но это как раз не-усложняет задачу решающих.
От задач никто не предлагает отказываться, просто чтобы не усложнять школьникам задачу введением мультитестов, часто достаточно просто немного изменить задачу, расширив диапазон ответов, избавившись от наиболее приоритетных ответов. Например, формулировать вопрос задачи не «существует ли», а «сколько таких».
Понятно, что изменять задачи, делать тесты, сложнее, чем просто свалить их в кучу, но это как раз не-усложняет задачу решающих.
Я не согласен с тем, что группировка тестов сильнее усложняет задачу решающих, нежели изменение условия задачи. Конечно, всё зависит от задачи, но, чаще всего, мультитест используется именно для таких задач, в которых изменение условия, которое позволит избежать эвристик, кардинально изменяет и решение задачи, делая его на порядок сложнее для решающих. Например, для вашего примера «существует ли» может решаться каким-нибудь поиском, а уже «сколько таких» потребует перебора.
Во избежание такой атаки, тесты группируются, чтобы «атомарный» ответ был не «0» или «1», а [«1», «0», «1», «0», «0»] например.
Мультитест :). См. habrahabr.ru/blogs/i_am_clever/58145/#comment_1569982
Когда был в 10ом классе была такая же история у меня. Нужно было кого-то на олимпиаду ехать. Был один прниша, подмазаный, шарил немного в веб-дизайне и корчил звезду. Его и отправили. Наша препод по информатике (всесоюзно заслуженый программист) была в комисии, и он потянул ответы. Тоже дали 2ое место, а через пару недель всплыло… Было очень неприятно всем, особенно информатичке, которая была на очень хорошем счету.
На школьных олимпиадах такое работало. А на вузовских уже нет — засчитывались только задачи, которые проходили все тесты.
На нашей олимпиаде нужно было выкладывать программу в определённый каталог, откуда её забирал робот на растерзание. Как оказалось, кроме робота её оттуда мог скопировать любой юзер, что я и делал — смотрел, как другие решают задачки.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Хитрость