Pull to refresh

Comments 190

главное чтоб кроме олимпиады этот метод нигде не применять
Ага :)

Китайцы взломали сервер Пентагона. Каждый китаец попробовал один пароль. Каждый второй пароль был «Мао Цзедун». На 74357181-й попытке сервер согласился, что у него пароль «Мао Цзедун» %)
Это популярное объяснение сути DDOS-атаки :)
Не так, это называется «китайский брутфорс» )
Брутфорс это всё же подбор пароля, а тут больше доведение сервера до ручки :)
Не до ручки. Доведение до Мао Цзедуна! :)
вспомнил то же случай на зачете.Еще в первом курсе однокурснику дали задание, решишь получишь зачет, нет- на пересдачу. Так вот решение то же было write('да'); причем препод посмотрел код, сперва офигел, но потом ничего не сказав поставил в зачетку.
вспомнил еще его. Учитель сразу сказал, если не можете решить задачу уровня В, начинайте тупо подставлять значения 0,1,-1… и так до 5. вероятнее всего можно подобрать число
дааада, А-часть по большому счету вся так может прорешаться, с конца. а насчет олимпиад. в ЕГЭ ты просто завышаешь свой бал, никого не касаясь, а тут этой хитростью спускается народ на место ниже, некрасиво, лет 5 назад, когда я выступал, код после просматривали, что то подобное — баллы снимали, справедливо.
Как это никого не касаясь? Там же Гауссиана вроде, завышаешь свой результат — меньше людей смогут набрать высокий балл.
Мне пришлось похожий подход применить при защите магистерской работы в институте: самой работы оставалось еще много (комбинация динамического программирования и генетического алгоритма для решения кинематических задач положения манипулятора робота — вкратце суть), а времени как обычно — в обрез.

Необходимо было просчитать точки в пространстве, по которым будет перемещаться рабочий орган манипулятора для нескольких «тестовых» конструкций манипуляторов и положений препятствий. Алгоритм перемещения был реализован, а вот алгоритм поиска точек — нет. Пришлось указывать эти точки прямо в коде программы. Сдать ведь нужно было…

Впрочем, после успешной сдачи и ее празднования я эту задачу все-же решил (для себя)
а в Днепропетровской области делают code review на областных. Или делали лет пять назад, по крайней мере. Жаль, что у вас культура олимпиад в таком упадке.
Я бы не сказал, что проблема в этом. Просто задачи нужно было лучше формулировать, чтобы разнообразнее выводы получались.

А code review что… если бы у нас он был победителей можно было бы назвать и без олимпиады, учитывая организационные моменты.
тоже правда. А тексты задач у вас остались?
Да это давно было. Там еще прикол был такой, что задачи на отборе на всеукраинскую были два года одними и теми же :) При чем в одной школе киевской их разбирали три года назад для всех.

На всеукраинскую в результате ехали не самый умные, а самые информированные ученики и самые любимые ученики информированных учителей :)
этот Рудык с компанией загнал олимпиадное движение в киеве в корень.
еще ездили победители винницких олимпиад, но не суть
и не надо говорить, что ездили кто попало. ездили вполне умные люди. и информированы были все какие будут городские и какие будут отборы.
на городской четыре года назад не делали
я так половину баллов по одной задаче получил :)
четыре года точно не делают)
Упала не столько культура, сколько интерес и уровень подготовки к ним со стороны как организаторов, так и участников. Готовить некого нынче (знаю по себе).
Могу точно сказать что 5 лет назад (как и 4 и 3) ничего подобного не было. Такое решение не нарушает правил а лишь показывает недальновидность автора задачи
Я когда учился в школе, ездил на московскую командную олимпиаду по информатике. Там мы тоже освоили этот метод, и попали в итоге на всеросийскую. Там, видимо, этот метод знали все %)
Ага :) По опросам моим кто честно пытался решить все не прошли.

Просто нужно формулировать задачи так, чтобы не было возможности такого дела, а раз не сформулировали — не пользоваться этим не только честность, но и тупость.
Как не странно, такой «метод» решения задачи чуть ли не официально был продекларирован на той самой всероссийской олимпиаде.

Однако, там с ним ловить было нечего — команда-победитель решила все задачи чисто.
Снова же по моим наблюдениям решали чисто в основном те, кто некие требуемые для решения специфичные алгоритмы уже разбирал не раз при подготовке. Задачи необычные (иногда попадались) не решали в равной мере все, а если решали — то либо действительно умные, либо методом подбора :)
На всероссийской олимпиаде я понял, что лишний на этом празднике жизни, когда начали разбирать решение задачи. Разбор сводился к фразам типа «ну, здесь надо было просто пустить волну и рассчитать получившиеся веса» или «здесь надо применить преобразование Страшнофамильного-Дикоумного, после чего агрегировать положительные результаты». Это сейчас, по прошествии 6 лет, я дико умный и способен это понять, но для меня тогда был шок.
Очень тебя понимаю.

Когда-то заняв 1е место на городе я должен был проходить тренировки перед республиканской. Но тренер так и не появился(уже не помню почему), и я поехал как есть, занял какое-то место посередине.

После чего мне попала в руки его книга в которой он описывал базовые алгоритмы (графы, быстрые сортировки и т.п.), которыми фактически решалось 100% задач республиканской и городской олимпиады.

До сих пор на него обижен — мне на республике тогда тупо не хватало времени на придумывание неглючной реализации. Собственно республику прошли те, у кого этот тренер вел информатику.
Вас послушать, так эти алгоритмы кто-то куда-то прячет и никому не показывает.
Я тогда не знал о существовании каких-то заранее придуманных алгоритмов вообще и о том, что их можно искать. В школе учили как заполнять формулы в Экселе, а программированию я учился самостоятельно по одинокой книжке по паскалю, в которой ничего не было толком.

У меня сейчас на столе лежит книжка по графам.

Толстенная, 1100 страниц. Все алгоритмы, как на ладони.

Другой вопрос, что в 16 лет у меня не было этой книжки. А сам я был не настолько умным, чтобы понять ее. Даже сейчас этот аппарат дается мне с трудом.
Как называется?
Реально, колись, что там за такая книга…
Она у меня уже дома валяется, доеду до дома — скажу.
Графы в программировании: обработка, визуализация и применение. Авторы: В.Н. Касьянов и В.А. Евстигнеев.
Предупреждаю — книжка адский матан.
В самый раз. Надеюсь нарою там что еще из оперы к которой относится алгоритм Дейкстры )
у тебя был преподавателем Дэвид Кнут?
UFO just landed and posted this here
Не совсем.

Есть набор тестов. За прохождение каждого теста по каждой задаче дается n баллов, за каждую попытку снимается m баллов.

По крайней мере, у нас было именно так.
Никогда о таком регламенте не слышал, хотя в кухне этой варился долго.
Это по системе ACM, тогда ещё за каждую дополнительную посылку даётся бонус в 20 минут штрафных и зачёт ведётся в первую очередь по количеству решённых задач, а затем — по штрафному времени.
Есть ещё так называемая «школьная» система, когда количество посылок ни на что не влияет, а баллы начисляются за прохождение тестов. Чем больше прошёл — тем больше баллов, так что можно выехать и на не полностью решённых случаях.
Аналогично делал. Было 6 задач… Нужно было выбирать пары точек, принадлежащие окружностям, которые пересекаются. Пару штук на последних тестах прошли. Вот и думаю, неужели мне так может повезти =).
Кстати, на Ъ-конкурсе по программированию — ACM — задача засчитывается только если проходит все тесты.
Я вааще не представляю как можно по другому :)
Я участвовал в нескольких… там было только так и не иначе. И все эти хитрости ни у кого не проходили. Правда было разок… наш алгоритм прошел все тесты, но был неправильным :) (организаторы не смогли обьяснить это) Но это было исключение из правил.
Кроме того, что должны совпасть результаты, не забывайте про ограничения по времени для каждого теста.
Олимпиады уже не те… Раньше такой метод позволял набрать процентов 10, а на сложных задачах вообще ничего, и проверки тоже были автоматические…
Олимпиады все те. Просто они разные в разных местах. Ну и масштабы важны. Я думаю на ВсеУкраинской такой метод не покатит уже.
Не расстраивайтесь, например у нас (Донецкая область) подобные решения могут от силы 10% набрать, тесты проверяются в группах.
Именно в Донецке я и участвовал ))
Судя по вашей дате рождения, вы довольно давно участвовали. Поверьте, сейчас у нас много чего изменилось, меньше давления со стороны руководства на жюри позволяет более правильно подходить к составлению и проверке задач.
Откуда вы знаете как оно было :) О каком давлении на жури вы говорите, я вообще такого не помню. Был случай, что одного участника подозревали в копипасте, так устроили дополнительный тур.
в саратовских олимпиадах лет 7 назад тестирование программ проводилось несколько раз и программы-заглушки, выдающие случайные числа в ответах, отсеивались.
rand seed в константу поставить ;)
ой, привет. а я думал, кто может писать про саратовские олимпиады… (:
Во второй программе ошибка, пропущена скобка :)
Случайно минуснул комментарий — держите тогда плюс в карму в качестве компенсации :)
сейчас на ломоносовской заочной по информатике сделали по-другому — начальное тестирование с базовыми данными, а конечное (после завершения приема решений) — прогоняют по «секретным» данным
У нас в школе банально не было приглашений на олимпиады по информатике или программированию.
А на олимпиады по русскому, литературе и математике — были.

Когда учился в школе сильно расстраивался этому факту.
Думаю, что и приглашения были, просто руководство школы считало, что Ваше учебное заведение гуманитарное, поэтому и не доводили до учеников эту информацию. Зато, наверное на олимпиадах по русскому языку Ваши одношкольники рвали математиков :)
Я учился в гуманитарной школе (с углубленным изучением немецкого языка), ни на какие олимпиады по языкам нас ни разу не посылали.
За все десять лет обучения мне довелось с приятелем побывать лишь на олимпиаде по химии :)
Ужас какой. А с другой стороны, ну какой смысл было соревноваться с Вами учащимся других, простых школ?
Которое знаеют только «йес киргиз» и «шпрехензидович»? :)
С химией примерно так и вышло, мы там, кажется, были первыми и последними представителями гуманитарной школы :)

Все это логично, но мы ж были не единственной такой школой с немецким языком, в мск их десяток другой точно есть.

Да ладно мы лабораторные по программированию еще хлеще сдавали. Понятно что ответ в задаче известен, дык мы написали правдоподобную программу которая никак не хотела работать, а сдавать лабу надо придумали простое решение.

+------------------------+
| | |
упс. инет тупанул.

Да ладно мы лабораторные по программированию еще хлеще сдавали. Понятно что ответ в задаче известен, дык мы написали правдоподобную программу которая никак не хотела работать, а сдавать лабу надо придумали простое решение.

Слева на экране был текст неработающей программы, а если долго скроллировать экран вправо то там стояли обычные printf(); которые выводили именно то что нужно было. Препод был настолько поражен, что ЯВНО не работающая программа выводила корректный результат, что аж пеной изошелся, но зачот поставил.
У нас пока преподу не обьяснишь как твоя программа работает, он тебе лабу не зачтет, пусть она хоть сто раз правильные ответы выдает =)
можно ведь и все по алгоритму написать. Но будет какая-то загвоздка, из-за которой правильный езультат ну никак не хочет получаться. В этом случае и препод смотрит на листинг, и ты ему подробно показываешь, объясняешь каждую строчку. У нас так и было. Но обозначенный выше метод со скроллированием меня спас.

Конечно, я его не всегда применял. Либо честно писал сам программки, либо переписывал у кого-нить. Данный метод я единожды использовал.
Просто как обычно бывает, красивой девушке которая нифига не понимает в программировании, делает лабу мальчик бот, но препод просекает фишку и не ставит ей зачет, вот из за таких преподов у нас ко второму курсу красивых девушек в группе не осталось =(
Может причина в том, что ваши красивые девушки не хотели сами учиться?
UFO just landed and posted this here
вспоминается универ… когда в качестве задания супер сложности надо было написать просмотрщик jpeg на делфи
а документации нормальной не было… в итоге программма состоит из кучи всяких рядов фурье и прочей фигни…
а в конце, после долгого скрола вправо img1.load(«test.jpg»)
за что я и любил C++ в универе, а не паскаль :)
Если еще одна хитрость — pregenerated results. Если никак не получается придумать алгоритм, который укладывается в заданное время и входные данные ограничены — предварительно рассчитываем ответы, а результаты пишем в исходный код. Программа получается такая: большой массив с данными и что-то вроде «read(x); write(data[x]);»
А как предварительно расчитать? Это когда ввод известен заранее?
Ну к примеру можно записывать расчитанную заранее таблицу простых чисел. Это самый простой пример.
Да, бывают задачи, где вариаций входных данных не очень много, они решаются перебором легко в реализации, но тяжело во времени выполнения.
Ну с прекальками тоже можно бороться, обычно лимит на размер кода. В топкодере — лимит на неиспользуемый код. Но не скрою, что сами порой прекальк запускали.
Иногда это единственный метод. Причём не на олимпиадах, а в жизни. Очень быстрый и выдающий ответы с заданной точностью. Я для управления индукционной печью использовал, когда известны были только обратные, весьма сложные зависимости (частично — экспериментальные табличные данные) и написать прямую функцию не представлялось возможным. Зато можно было аппроксимировать известные данные кривыми гаусса и «нарезать» их с нужной точностью.
По первому методу — часто решениям, прошедшим только тесты на 0 или аналогичные ответы, дают 0 баллов (мы на нижегородской городской делаем так).
По второму — что бы обойти перетестирование и выбор худего результата лучше считать хэш от входных данных и на его основании выбирать 1 или 2.
Да, точно :) Это я упростил по второму. Там же перетестирование было тоже.
Лучше не хеш считать, а эвристически выбирать наиболее вероятное значение. К примеру, длинный тест — вероятнее 2, короткий — 0, хотя ещё лучше написать более «умную» эвристику.
Картинка к посту отличная :) Передает настроение)
Там ещё тот, кого хотят обдурить, удачно на баннере рядом оказался. Такая физиономия доверчивого препода :)
Рашн смекалка! :) Автор молодец, улыбнул!
Говорят, на одной из мировых олимпиад победила индийская команда. Задача состояла в предсказании того, какая будет завтра температура. Индусы написали программу, суть которой сводилась к:
1. Ждать 24 часа.
2. Смерить температуру.
интересно только, как программа смеряла температуру
Парсила сайта погоды
доступ к инету есть?
UFO just landed and posted this here
Я думаю Политический лицей справился бы с задачей еще лучше. Они бы не стали даже искать ответы, просто убедили бы проверяющих, что именно их программа гарантировано на 100% дает правильные ответы :)
UFO just landed and posted this here
Ммм… мне кажется мы с вами были на одной олимпиаде когда-то :)
У нас в университете олимпиада проходила, так там при первом же уровне и код осматривали, и тестовые входные-выходные параметры не все давали, и последние задания уже не такие консольные — нарисовать часы или экономическую задачу решить, моделирующую поведение в олигополии.
Надеюсь, это была школьная олимпиада у вас.
Не, городская. Наоборот менее формальные задания были раньше, а чем выше уровень — тем формальнее условия проверки, чтобы блата избежать.
А у нас тесты были. И секретная база с ответами под паролем. Препод охранял свой пароль и прикрывал рукой клаву чтобы никто не видел.

Правда это не помогло когда я на машину поставили кей спу который записал его пасворд. Потом несколько параллельных курсов сдавали тест из 500 ответов. Очень помогло. Особенно когда стало ясно что если отвечать на все вопросы правильно по базе все равно не набирается 100% результата.

UFO just landed and posted this here
Если закономерность верная — то твое решение лучшее.

К примеру задача на printf(«Yes»); — это лучшее решение, если в каментах объяснено, почему так.
Т.е. это решение уже оптимизировано ;)
UFO just landed and posted this here
UFO just landed and posted this here
Ну по крайней мере он просто оптимальней.
А как тогда? Стопицот if'ов?
UFO just landed and posted this here
Однако. Мсье знает толк в извращениях =)
это еще не извраения =)
Вот, например, видел нечто подобное:

$x = ($a > $b)? (($b < $c)? $b: (($c == $a)? 0: $c)): (($a > $c)? $a: $c)

только вместо $a, $b и $c были конструкции посложнее.
Суть поста, имхо, не сдаваться никогда и ни при каких обстоятельствах. Не можешь сделать на 100% идеально, сделай на 90% (на 50, на 20, или хоть на 1, в конце концов!). Это значительно лучше чем круглый ноль и полный пролёт.
UFO just landed and posted this here
Особенно обидно, когда таких умников пол офиса сидит,
а ты с очередным их «write(0)» идёшь к заказчику ))))
UFO just landed and posted this here
поддерживаю, меня вот заколебало что на главную попадает всякий шлак. какую смысловую нагрузку несет данный пост? что хотел поведать автор? кроме как заявить «а я тоже олимпиадник и такой умный что попал на всеукраинскую олимпиаду»… тьфу
UFO just landed and posted this here
Для тех людей, которые «в теме» «хитрость» автора не является хитростью как таковой, это — один из известных приёмов, которым каждый когда-то пользовался. Тем более, те организаторы, которые заинтересованы не допускать подобные решения с помощью группировки тестов не допускают их.
Так что, получается, результатом поста автора явилась только полемика об олимпиадах, что, в принципе, неплохо для тех, кому есть что сказать.
Я один раз учавствовал в олимпиаде по информатике в 9 классе. Решили что смогли, много думали, а в итоге победили ученики организаторов этой олимпиады. Даже стало противно. А хитрость нужна была на входе в школу, где проводили олимпиаду и не пускали никого без сменки. Ну да ладно, зашли с черного входа =)
у нас когда была олимпиада по информатике городская, сами тесты и ответы на них были только у представителей гороно, которые и проверяли правильность работы программы
Да зачем им ответы передавать… достаточно разобрать нужные алгоритмы перед этим. Совсем дуракам никто побеждать обычно не дает даже так.
а какой район?
Санкт-Петербург, Приморский район. Номер школы не помню.
Хаха) Класс.
Интересно, а «по-нормальному» там бы большой код получился?

По поводу наглого подхода. Вы знаете, если для полноценного решения задачи требуется написать «Write(0);», я думаю, это и надо сделать. Круто.

Вам нужно идти в agile-разработчики :)
Был в прошлом году на олимпиаде в УГТУ в Екб на подобной олимпиаде, человек занявший первое место некоторые задачи решил также.
ИМХО, вполне нормальное решение. Т.е. есть входные данные, на некоторые входные данные программа выдаёт правильные ответы. Правда, на моих всероссах по-моему ещё дополнительное условие ставили — для одных входных данных программа обязана выдавать те же выходные данные))

Помню ещё одно хитрое решение… На одну задачу было написано решение. Решение 100% давало правильный ответ, но не проходило по времени. Оптимизации не помогали, а так как количество входных данных были достаточно ограничено, то было принято решение дописать эту прогу с тем, чтобы оно генерировало другую прогу, где для каждых возможных входных данных были предрасчитаны выходные, а сама программа заключалась лишь в поиске в одном массиве введенного числа и вывод результата из другого массива. Программа благополучно прошла все тесты.
В своё время на Всеукраинке так одну задачу решил. Написал за пять минут перебор, который потом ещё час генерил ответы на тесты. А многие на этой задаче засыпались по таймлимиту.
Представляю участника с таким выражением лица, сдающего решения :-)
Вы удивитесь, но я точно также в свое время занял второе место :) Моя хитрость была в том, что один из тестов, которые проходили программы, был дан в качестве примера в самом задании.
Как-то слабовато у вас там на Украине. В Беларуси на республиканских и областных олимпах, насколько я знаю, с любого рода заглушками активно борются.
Это очень локальный характер имеет (хотя странно, что в Киеве). На областных такого уже днем с огнем не сыщешь: там такую задачу решат почти все, смысла давать нет.=)
а по моему это не хитрость, а тупость.
а ты сначала додумайся до такой тупости
ппц. а для тебя write(«0») настолько сложен, что до него нужно «додумываться»? )))
очень популярный метод, когда учился в университете, некоторым преподавателям именно такие программы и писали.
Я помню баловался тем (на несерьёзной олимпиаде) что сдал прогу, которая ищет файлы с тестами, и угадывает имя с файлом ответа. Копирует в выходной файл, и телемаркет. :-D

PS. Это как раз Беларусь, впрочем, редко кто так умудряется. А решение у топикастера — типичная эвристика. Только зря он недетерменированное решение сдал. Лучше на основе хэша от входного файла :-).
Как только увидел, что участник олимпиады, сидящий за соседним компом тупо жмет ENTER (не вводя никаких данных при каждом запросе), а его программа выдает достоверные ответы,

с олимпиадами по информатике решил завязать)
А что плохого в нажатиях по ENTER?
Никогда не забуду величайший облом на областной олимпиаде по программированию…
Решил 3 задачи из 4, причем потом нам рассказывали решения, у меня эти 3 были решены вобщем то правильно.
НО, я помимо вывода в файл делал вывод результата на экран. Про ограничение по времени меня никто не предупреждал. Ни одна программа не прошла тест, ибо вывод на экран, естессно, занимал много времени =(
Ну неужели это было так сложно, правила объяснить ПЕРЕД олимпиадой, а не при подсчете результатов?
Ну не знаю. По крайней мере, во всех олимпиадах, организуемых НГУ, школьникам помогают точно, сам в call-центре сидел.
Когда это было, и, главное, где?
2004 г. по-моему, областная олимпиада в Иркутске.
Все таки там есть эврестическая проверка. Говорил тока что со всероссийским олимпиадником этого года.

И да у нас на области было весело. Олимпиаду проводила наша школа. И пришла девушка. Вся такая неформальная. Досидела до конца. Всем интересно. Начали смотреть сорцы. А там стихи. Стихи на транслите. Даже целые рассказы. Что-то вроде — «Чип Чип Чип и Дейл спешат на помощь!» Мы были все в осадке. Теперь это у нас легенда. xD
Во-первых, на хабре есть несколько человек, жюри олимпиады. И зря Вы написали здесь о Вашей «уловке».
Во-вторых, прикол с выводом «0» достаточно старый. Чаще всего проверяют в таких задачах на вывод одного ответа. Странно, что у Вас прошло.
В-третьих, тесты пропускаются 3 раза(насколько помню). Слабо верится, что Ваша программа дала три одинаковые рандомайзы…
А мне интересно, в код программы жюри никогда не смотрит?
На отборах на всеукру смотрят. На Киевской — нет.
Человек правильно написал. На олимпиадах задачи проверяются автоматически, по тестам, в код никто не смотрит. На сборах же цель — не только отобрать лучших, которые пойдут отстаивать честь области/страны, но и улучшить их знания, поэтому задачи подробно разбираются и код тоже анализируется.
о, какие люди) кста, а кто нынче в жюри?
Интересно, почему зря? Использование подобных эвристик — довольно известный приём, причём, на сборах на Всеукраинку нас учили, что если не успеваешь написать полностью программу, пиши эвристику, авось наберёт сколько-то баллов.
да, но на отборах делали проверку на одинаковый вывод. стоит более хитрое придумывать.
рендом отсеивали трехкратной проверкой.
Из за такого вот хитёрства российские дипломы (начиная с олимпиадных, заканчивая ВУЗовскими) и обесценились на рынке труда. Нормальный человек бы постыдился, что обманывает, а тут поют дифирамбы, менталитет-с.
это не обман, а один из вариантов решения поставленной задачи.
— Сынок, сходи за хлебом
Сынок пошел и ограбил магазин. Это тоже один из вариантов решения поставленной задачи. По-моему, некоторые технари со своей однобитной логикой очевидных вещей понять не могут: не все способы одинаково полезны.
Это действительно один из вариантов решения задачи. Если никаких ограничителей вроде того, чему сынка учили раньше, нет.
Плохо то, что в России не учат детей не лгать и не обманывать, а наоборот — называют это хитростью и всячески поощряют. Грустно это.
Про полезность способов никто ничего не говорил. Поставлена задача, вы ее решаете «хитростью». В контексте олимпиад это решение будет абсолютно корректным. Ваш пример про мальчика-грабителя слишком притянут за уши.
А по-моему, это вы сотоварищи находитесь в состоянии изменённого сознания, когда обман, враньё и подлость принимаются за добродетель — цель то достигнута. Нормальная система образования расценивает это именно как cheating — и карает за него самым суровым образом. Поэтому ТАМ дипломы и награды — ценны, у НАС — ими можно в сортире, простите, попу подтирать. И это факт — ни одному ВУЗу эти дипломы на фиг не сдались, чай не девственницы в приёмных комиссиях сидят и понимают что к чему. А вы — продолжайте решать поставленные задачи любыми способами, всё равно профита, благодаря вашим усилиям, никакого уже нет.
Dixi.
Лол. Вы поймите, что речь в топике идет про школьников в основном и для такого возраста «хитрить» данным образом это абсолютно нормально. А Вы же тут раздуваете из мухи слона, истерию какую-то разводите.
>абсолютно нормально
Как со стенкой.
Выдрать фразу из контекста и использовать ее как аргумент — это шикарно.
Бог с вами, истерите дальше.
Ну блин, контекст двумя строчками выше находится, кому надо, прочтет. Я про то, что нефиг на возраст списывать: врать ни в каком возрасте не хорошо.
Это не хорошо, с этим никто и не спорил, если Вы заметили. Просто это НОРМАЛЬНО, в таком возрасте, в любой стране мира, во все времена. Как я уже и говорил. А Вы все о своем.
Вспомнился такой же хитрый студенческий случай.
Преподаватель требует на зачет лабораторный блок питания. Вход 220 выход 12. Напряжение должно быть стабильное, без фона и пульсаций.
Студент заводит 220 на неоновую лампу, 12 выдает с батареи. Все это в красивой коробочке, гайки совершенно случайно покрыты толстым слоем краски.
Зачет в кармане.
Такой подход к программированию, как к роду деятельности, у меня лично вызывает недоумение (а если автор этой статьи программер то и опасения ), — зачем участвовать в олимпиадах и использовать такие не олимпийские методы? Ради диплома призёра, которого вы честно не заслужили, а воспользовались идиотизмом тех, кто так проверяет задачи?
Диплом был мне не нужен, а вот возможность прогуливать школу всвязи с тем, что я попал на отбор на всеукраинскую — да, пригодилась :)
Я отвечу вам. Дело в том, что олимпиады по программированию на самом деле далеки по сути от реального практического программирования. Рассматривайте олимпиаду как одну практическую задачу в которой ваша цель — набрать как можно больше баллов с помощью любых доступных средств в рамках правил. Олимпиады как раз и призваны развивать нестандартных подход и абстрактное мышление у людей.
Это не есть развитие нестандартного подхода, это развитие подхода _неправильного_. Нестандартный подход подразумевает правильное решение нестандартныви методами. В данном случае решение заведомо неверное и автор об этом прекрасно знает.
Просто умозрительно, — представим ситуацию. Человек поступил, отучился пошёл на работу, — и ситуация 1 в 1, проект заканчивается время поджимает — алгоритм не получается а сдавать надо или завалишь всё и свой и труд других людей… и будет огромный соблазн написать такую затычку как было показано, просто не хотелось бы чтобы умозрительная контора в которой работает этот умозрительный человек занималась например разработкой авионики или системами управления транпортом.
Вы всё равно смешиваете понятия. На олимпиаде существуют правила, часто гораздо более жёсткие, нежели в реальных высокоуровневых проектах. Наиболее важные — ограничения по памяти, времени работы и времени разработки. Задача участника не только понять, как правильно решать задачу, его задача — найти золотую середину, которая будет удовлетворять ограничениям и наберёт наибольшее количество баллов. Вы делаете упор на правильность решения. Правила ACM не допускает даже малейшей неточности в решении. Но школьные олимпиады — другое дело. Тут у участника больше свободы в выборе. И если он заранее неправильно решает задачу, но при этом получает наибольший выигрыш в целом, то он поступает полностью правильно. К тому же, вы, наверное, и сами можете придумать кучу реальных ситуаций, в которых идеальная точность решения не стоит времени и ресурсов, затраченных на его разработку. Хотя решать это, конечно, должны не рядовые кодеры, а руководители проекта.
почитала ниже. Вы оказывается член жюри города, в котором я училась. здесь грубо говоря поощряете подобные методы. я в шоке.
Злоупотребление «подобными методами» я не поощряю, разумное использование — да.
Тут не с заглушками бороться надо, а задачи писать такие, чтобы вероятность угадать ответ была почти нулевая и заглушку писать было бессмысленно. Когда я участвовал в школьных олимпах (Беларусь), на любой более-менее серьезной олимпе старались так делать.
И я не понимаю, как можно бороться с такими заглушками? Это что, не по правилам? Ведь участник всегда может сказать, что он придумал мега-доказательство того факта, что ответ всегда 0 (то, что оно неправильно, это уже второй вопрос). И по идее, жюри не имеет права ничего ему сделать.
Кстати, прекалькуляция — это тоже не трюк, а вполне нормальный метод. У нас в Беларуси были даже задачи, которые предполагали прекалькуляцию по своей сути. Но это были задачи, которые в лоб не решишь и тут выигрывал тот, кто лучше организовал эту самую прекалькуляцию.
На одной из олимпиад была задача, связанная с календарем. Среди решений попалось очень оригинальное: парень переводил системные часы, устанавливая требуемые даты. Затем спрашивал у системы день недели и проверял условия.

Задачу не засчитали, хоть она и проходила все тесты.
Странная тестирующая система. Обычно запускаются в своеобразной «песочнице» и доступа ни к каким ресурсам нет.
Это было на заре современных автоматизированных систем тестирования, участников было не так много, и можно сказать, что оценка работ проводилась в полуавтоматическом режиме. На код тоже смотрели.
Так ты попал на всеукраинскую олимпиаду? И в каком году это было.
=) Просто я был там в этом году, может видел :-D
Это известный приём, я о нём много лет назад читал, при подготовке к школьной олимпиаде (областной). Странно, что у Вас в Украине не проверяют такого…

И на любых олимпиадах (напр., математических) в виде тестов может сильно помочь :)
Я член жюри города Донецка (один из областных центров Украины). Так вот, уже несколько лет в подобных задачах используется группировка нескольких ответов в один. Тест считается пройденным, если вся группа ответов идентична эталонной. На простых группах тестов эвристики теоретически могут пройти, но человек, так решивший задачу не наберёт больше 10-20% баллов.
Это называется мультитест, в АСM тоже нередко бывает. Помогает усложнить задачу участников :) тем, что неизвестно точно, на каком тесте падает решение, и прошло ли оно дальше после предыдущей правки (несколько приближает к условиям финала ACM ICPC). Кроме того, позволяет устанавливать более гибкие/хитрые ограничения на время выполнения, ну и по мелочам…

Я рад, что Вы это используете, но для решения проблемы именно этого «такого хитрого плана» достаточно просто немного по-другому составлять задания/тесты. Желательно учитывать плюсы и минусы каждого подхода.
ACM всё же сильно отличается от подхода к школьникам. Тут как раз нужно не усложнять задачу, а не допустить возможность набирания тривиальными решениями большого количества баллов.
Фактически, в нашем случае, «мультитест» и достигается изменением условия задачи — добавляется во входных данных количество тестов, затем подряд следуют исходные данные каждого теста.
Полностью отказаться от этого нельзя, ведь бывают действительно хорошие задачи, решением которых, тем не менее, является конечное небольшое множество заранее известных ответов.
Я про это и говорю: нужно учитывать, зачем применяется тот или иной приём. Мультитесты так и организованы, как Вы говорите: нескользо вариантов входных данных в одном файле, для каждого — вывод в выходном, полученный применением одного и того же алгоритма (собственно, решения) ко всем входам. Проверяется целиком выходной файл, если хоть один ответ не совпал — тест не пройден.

От задач никто не предлагает отказываться, просто чтобы не усложнять школьникам задачу введением мультитестов, часто достаточно просто немного изменить задачу, расширив диапазон ответов, избавившись от наиболее приоритетных ответов. Например, формулировать вопрос задачи не «существует ли», а «сколько таких».

Понятно, что изменять задачи, делать тесты, сложнее, чем просто свалить их в кучу, но это как раз не-усложняет задачу решающих.
Я не согласен с тем, что группировка тестов сильнее усложняет задачу решающих, нежели изменение условия задачи. Конечно, всё зависит от задачи, но, чаще всего, мультитест используется именно для таких задач, в которых изменение условия, которое позволит избежать эвристик, кардинально изменяет и решение задачи, делая его на порядок сложнее для решающих. Например, для вашего примера «существует ли» может решаться каким-нибудь поиском, а уже «сколько таких» потребует перебора.
Во избежание такой атаки, тесты группируются, чтобы «атомарный» ответ был не «0» или «1», а [«1», «0», «1», «0», «0»] например.
Когда был в 10ом классе была такая же история у меня. Нужно было кого-то на олимпиаду ехать. Был один прниша, подмазаный, шарил немного в веб-дизайне и корчил звезду. Его и отправили. Наша препод по информатике (всесоюзно заслуженый программист) была в комисии, и он потянул ответы. Тоже дали 2ое место, а через пару недель всплыло… Было очень неприятно всем, особенно информатичке, которая была на очень хорошем счету.
На школьных олимпиадах такое работало. А на вузовских уже нет — засчитывались только задачи, которые проходили все тесты.
На нашей олимпиаде нужно было выкладывать программу в определённый каталог, откуда её забирал робот на растерзание. Как оказалось, кроме робота её оттуда мог скопировать любой юзер, что я и делал — смотрел, как другие решают задачки.
Sign up to leave a comment.

Articles