Comments 56
Дан например список 11, 10,7,7,7,
получится по приведенному алгоритму:
11,7 — в первой группе и 10,7,7 — во второй. Хотя, верным будет 11 ,10 в первой группе и 7,7,7 во второй
Бедные дети
Для равных по кол-ву команд, все равно неверно, например список 11,10,7,7,7,1: алгоритм выдаст 11,7, 1и 10 ,7,7 хотя верно 11,10,1 и 7,7,7
А так да видимо она оказалась сложной не для школьников, а для организаторов.
А вообще мы бы приняли даже менее оптимальные решения, лишь бы участники приложили усилия.
В данном случае нужно было упомянуть в условии субоптимальность возможного решения
Мы так делали — было полезно.
Лучше посмотрите, как готовят задачи ко ВСоШ по информатике: там для каждой подзадачи (ну почти) есть отдельное решение с его доказательством.
А вот по scratch всё равно ручная проверка и никак больше…
Зачем это делать самому? Есть готовые платформы, такие как codility
Я как-то один раз писал олимпиаду по информатике в школе, там исходные данные надо было брать из файла и ответ записывать тоже в файл. Автотесты на такое пишутся тривиально: десяток готовых наборов данных(включая всякие граничные случаи) и ответов. Есть конечно вероятность, что какое-то неверное решение пройдёт все тесты, но она очень маленькая.
Если не умеют работать с файлами — можно дать куски готового кода.
Правда не знаю, может ли работать с файлами scratch.
Меня честно говоря оттолкнула от автотестов история коллег муниципалов, которые для своей олимпиады сделали десятки наборов данных на каждую задачу)) Это круто, но показалось, что будет очень трудозатратно.
Я точно знаю, что ученики моей же школы пытались гуглить, искать похожие задачи, но что-то не смогли совсем. Не умеют школьники гуглить алгоритмы видимо.
Это у вас или не попались, или не спалились с вариантом "папа/мама программист" :-)
У вас ошибка в решении 10 задачи.
И она просто на порядок сложнее всех остальных. Решение 10 сложнее чем всех остальных вместе взятых. И вообще Dp школьникам явно рано.
А решение жадным алгоритмом не является ошибкой. Это приближенный быстрый метод решения задачи NP-задачи. Мы рассказывали решение в контексте проходимой с учениками темы, не углубляясь в дебри точных решений, которые кстати неприменимы для рюкзаков, так скажем: больших размеров.
Правильное решение безумно сложно для школьника. Вы сами попробуйте его написать понятным языком. И понятным кодом. Все сразу сами поймете.
Вы обманываете детей. Так нельзя делать. Никогда.
8 — непонятные условия. Я 3 раза перечитал. Посмотрел ответ и все равно не понял что надо делать.
10 — все понятно. Но dp. Для школьников нерешаемо. И неверный ответ от организаторов сверху.
И то и то демотивирует и ставит огранизаторов на роль неких шутов. Которые хотят чтобы ответ подогнали под их понимание правильности. Или разобрались а что же они хотели сказать этим вопросом.
Не выдумавайте сами. Берите условия с любых проверенных олимпиад. Там все четко и без нерешаемых задач люди сделали.
www.mathworks.com/matlabcentral/fileexchange/56332-zigzag-scan-any-n-n-matrix-bloc-of-image
Десятая задача — элементарная и легко решается полным перебором. Порядок сложности -факториал.
Вот её оптимизации — очень нетривиальны. И не для школьников.
К факториалу претензий по сути нет. Хотя все равно слишком сложно по сравнению с остальными. Тогда надо зарубать все решения сделанные по другому. И обязательно нужно примечание в задаче. «Супер сложно. Не беритесь пока все остальное не сделали.» Для отделения первого места от второго может пригодится.
Претензия к 10 это неверный ответ организатора. Участник должен угадать что у организатора в голове. Не надо решать верно, надо просто угадать о чем думал тот кто это придумывал. Так делать нельзя. Это дискредитирует всю идею олимпиад по программированию.
А с неверным ответом на 10, вы когда пишете, сначала читайте комментарии. Уже в первом комментарии написано, что решение неверное. А так я с Вами полностью согласен.
И кстати, если было в условии сказано, что решить нужно полным перебором, то задача была бы как раз для школьников.
Там будет 100!/(50!*50!) при максимальном числе участников. Ради интереса залез в wolfram alpha — это порядка 10^29. На процессоре частотой 1 GHz — 10^20 секунд или 10^12 лет. Я бы это не считал решением.
Опс, и правда это уровни, а не макс. количество.
проблема давать сложную задачу но принимать приближенное решение (без указания) в том что более умный школьник, который сможет понять неоптимальность решения, может потратить много лишнего времени или вообще не предоставить решения.
А почему такая старая версия java? Даже не восьмая. И не хватает IDE от jetbrains что для java, что для пайтона.
В олимпиадах по программированию отличительной чертой (по сравнению с другими предметами) всегда являлась объективность оценивания: тест либо пройден либо нет, никакого субъективизма от жюри тут нет. У вас же, как я понял, совсем не такая система...
Отдельно по 10 задаче мы планировали смотреть подробно решение, если оно не будет проходить тесты, но алгоритм будет давать значения приближенные к оптимальным.
Но смотреть было нечего, потому что никто 8-10 задачи не решил.
Не вникая в задачи как таковые, хочу поддержать автора в его начинании. Приятно смотреть на завершенную работу
только одна олимпиада в которой могут участвовать питонисты — “Играем в программистов”
Очень странное утверждение, а как же Всероссийская олимпиада школьников? В Иркутске её не проводят?
Плюс — только 5-11 классы.
VisualStudio 2019
Вот так детей и подсаживают на проприетарщину
file = open('input.txt')
animal = []
kolvo = []
for stroka in file:
data = stroka.split()
animal.append(data[0])
for i in animal:
kolvo.append(animal.count(i))
maxi = 0
pos = 0
for i in range(len(kolvo)):
if kolvo[i] > maxi:
maxi = kolvo[i]
pos = i
print (animal[i], maxi, end=" ")
$ cat input.txt
Shark White
Shark White
Turtle Caiman
Shark zebra
Turtle Caiman
$ python a.py
Turtle 3
Для подготовки задач можно использовать Полигон polygon.codeforces.com, а для проведения соревнований — ЯндексКонтест contest.yandex.ru
Если интересно — пишите, поделюсь опытом.
Вы не представляете, сколько школьников интересующихся IT вообще и программированием в частности тусуется в телеграм чатах linux направленности. У них и винды-то, зачастую, вообще нет.
Опыт проведения городской школьной олимпиады по программированию