Для контекста посмотрите этот пост.
Всем привет!
Хочу поблагодарить всех за участие в этом шуточном соревновании — как авторов, так и участников. Спасибо каждому, кто даже хотя бы зарегистрировался на соревнование, кто не поленился и отправил хотя бы одну посылку — мне очень приятно и это большая честь для меня, что кого-то интересуют мои задачи. Хочу также извиниться за то, что соревнование было не совсем честным. В конце концов, контест первоапрельский — вы знали на что вы шли ;)
Перейдём к награждению! В нашей "олимпиаде", как и в большинстве, будут победители и призёры. Статус призёра получают все, кто решил хотя бы 7 задач, а статус "победитель" получают те, кто решил 10 задач, или же решил 9 задач но получил не больше чем 1029 единиц штрафа.
Таким образом, победителями соревнования становятся:
Место | Участник | Задачи | Штраф |
1 | ssor96 | 10 | 1846 |
2 | AndreyPavlov | 10 | 2874 |
3 | FBI | 9 | 823 |
4 | Pa_sha | 9 | 1029 |
Призёры:
Место | Участник | Задачи | Штраф |
5 | SashaT9 | 9 | 1078 |
6 | TripleM5da | 9 | 2274 |
7 | IzhtskiyTimofey | 9 | 2879 |
8 | pavlovoleg4889 | 9 | 5035 |
9 | ladno1 | 8 | 2279 |
10 | sevlll777 | 7 | 559 |
11 | gultai4ukr | 7 | 758 |
12 | Arsen4ikVar | 7 | 2606 |
13 | Earl_of_Lemongrab | 7 | 10491 |
Все призёры получат памятные дипломы, а победители дополнительно получат кое-что ещё. Чемпиона тоже ожидает особый приз)
А теперь, наконец, перейдём к разбору задач.
[problem:376055A]
Автор задачи: Nartov_dima
[problem:376055B]
Автор задачи: gordeve
[problem:376055C]
Автор задачи: gordeve
[problem:376055D]
Автор задачи: shevnin_d
[problem:376055E]
Автор задачи: unknowableshade
[problem:376055F]
Автор задачи: gordeve
[problem:376055G]
Автор задачи: gordeve
[problem:376055H]
Автор задачи: khadzakos
[problem:376055I]
Автор задачи: unknowableshade
[problem:376055J]
Автор задачи: Фольклор
"День Дураков" официально окончен. Спасибо за внимание! Буду рад услышать критику в комментариях!
Мне понравился контест, но тесты, конечно, слабоватые в некоторых задачах были:
Я так и не понял решение $$$C$$$. Написал что-то случайное. Подумал, что рейтинг поднимается для True композиций и надо максимальные числа вывести именно для них, а для Fake всё равно что. Почему именно с Fake поднимается рейтинг?
Решение $$$D$$$ у меня, оказывается, неправильное. :-)
Попытавшись сдать эту задачу 36 раз, я в конце концов подумал, что ключ во фразе "и вот у такого человека вам необходимо за $$$40$$$ вопросов узнать число $$$n$$$, лежащее в пределе от $$$1$$$ до $$$10^9$$$". То есть, я ровно 40 раз спросил про "= 6" (которое в тестовом примере было).
Задача $$$H$$$, конечно, у меня самая ошибочная — зашла на 45-й раз. Сначала перепугался, что $$$nq \approx 10^9$$$ и решил написать решение с HLD за $$$O(n \log n + q \log^2 n)$$$. Получил WA, подумал, что задача в чём-то другом состоит. В конце концов, зашло решение за $$$O(nq)$$$ (249 мс) и это очень меня удивило.
Ещё меня очень беспокоила фраза "Советуем решать задачу под песню: Calvin Harris — Summer" . В таких задачах обычно просто так такое не пишут. Не очень понимаю, зачем это было. Жутко расстроило то, что, в конце концов, она оказалась там просто так. Долго пытался понять её глубинный смысл в этой задаче. В песне было что-то про листья, и я изо всех сил долго и честно пытался хоть как-то связать это.)
А все остальные задачи очень даже ничего.
Я единственный, видимо, кто сдал задачу $$$A$$$ на C++. Идея с $$$|a|, |b|$$$ очень понравилась. Ещё подумал на то, что во фразе "А и Б" имеет место побитовое И. Пытался с этим связать как-то ответ изначально. Хорошая задача и понятное условие.
Задача $$$B$$$ неплохая. Без подвохов.
Задача $$$F$$$ очень повеселила. Наверное, одна из самых хороших, по моему мнению. Но даже её я решил криво. Не увидел одинарные кавычки у первых двух слов. Приметил, что фраза "без кавычек" есть только у третьего слова и подумал, что остальные нужно выводить с двойными кавычками.)
Задача $$$G$$$ хорошая. Сразу подумал на то, что опечатки там не просто так, но почему-то очень долго до меня доходило, что буквы надо выписать. Хотя я в прошлом уже видел похожую задачу.
В задаче $$$I$$$ так и не понял, почему точки, лежащие на одной прямой, образуют $$$0$$$. Скорее ещё одну длинную единицу. :-)
И задача $$$J$$$.
Когда я делал задачу H, добавляя песню, я просто хотел сделать отсылку к гачи) В следующий раз учту, но прикольно получилось, что кто-то искал какой-то скрытый смысл.
Теперь я назову это намеренной мерой для отвлечения внимания!
Кстати для меня стало большим удивлением то, что многие думали именно над HLD в этой задаче, хотя сам ее решал с помощью LCA (но видел решения и через ordered_set, которое мне очень понравилось).
UPD: к сожалению тесты и вправду были слабые, поэтому O(nq) заходило(
Я очень не хотел писать HLD. До последнего пытался как-то этого избежать. В результате, совсем уже не найдя никаких связей между песней и задачей, я всё-таки потратил примерно 2 часа (код+отладка) для того, чтобы с нуля всё написать (ни разу до этого не писал HLD, были попытки, но в конце концов всё бросал).
HLD просто очень стандартный метод для решения подобного рода задач, поэтому, вероятно, много людей и решило им воспользоваться. Мне понравилось решение авторское за $$$O(n + q^2)$$$, но я до него не додумался бы.)
I enjoyed this contest very much but one small thing the English statement says
Output a single number less than 998244353 - the answer to the problem
I don't know if it's like that in the Russian statement but damn this was the worst lie of the contest.
I cannot say that this was a lie, not an intentional lie at least. The chosen wording behind the output was meant to make the unobservant people think that you need to print the answer $$$mod\ 998244353$$$ since the possible true answer ($$$10^6 * 10^6$$$) could be quite big.