Блог пользователя gordeve

Автор gordeve, 2 года назад, По-русски

Для контекста посмотрите этот пост.

Всем привет!

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

Перейдём к награждению! В нашей "олимпиаде", как и в большинстве, будут победители и призёры. Статус призёра получают все, кто решил хотя бы 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


Интересный факт
Подсказка 1
Подсказка 2
Решение
Код на Python

[problem:376055B]

Автор задачи: gordeve


Интересный факт
Подсказка 1
Решение
Код на C++

[problem:376055C]

Автор задачи: gordeve


Интересный факт
Подсказка 1
Решение
Код на C++

[problem:376055D]

Автор задачи: shevnin_d


Интересный факт
Подсказка 1
Решение
Код на C++

[problem:376055E]

Автор задачи: unknowableshade


Интересный факт
Решение

[problem:376055F]

Автор задачи: gordeve


Интересный факт
Подсказка 1
Решение
Код на C++

[problem:376055G]

Автор задачи: gordeve


Интересный факт
Подсказка 1
Подсказка 2
Решение
Код на C++

[problem:376055H]

Автор задачи: khadzakos


Интересный факт
Подсказка 1
Подсказка 2
Решение
Код на C++

[problem:376055I]

Автор задачи: unknowableshade


Интересный факт
Подсказка 1
Решение
Код на C++

[problem:376055J]

Автор задачи: Фольклор


Интересный факт
Решение
Код на Python

"День Дураков" официально окончен. Спасибо за внимание! Буду рад услышать критику в комментариях!

  • Проголосовать: нравится
  • +25
  • Проголосовать: не нравится

»
2 года назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Мне понравился контест, но тесты, конечно, слабоватые в некоторых задачах были:

Я так и не понял решение $$$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$$$.

  • »
    »
    2 года назад, # ^ |
    Rev. 3   Проголосовать: нравится +13 Проголосовать: не нравится

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

    Теперь я назову это намеренной мерой для отвлечения внимания!

    Кстати для меня стало большим удивлением то, что многие думали именно над HLD в этой задаче, хотя сам ее решал с помощью LCA (но видел решения и через ordered_set, которое мне очень понравилось).

    UPD: к сожалению тесты и вправду были слабые, поэтому O(nq) заходило(

    • »
      »
      »
      2 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Я очень не хотел писать HLD. До последнего пытался как-то этого избежать. В результате, совсем уже не найдя никаких связей между песней и задачей, я всё-таки потратил примерно 2 часа (код+отладка) для того, чтобы с нуля всё написать (ни разу до этого не писал HLD, были попытки, но в конце концов всё бросал).

      HLD просто очень стандартный метод для решения подобного рода задач, поэтому, вероятно, много людей и решило им воспользоваться. Мне понравилось решение авторское за $$$O(n + q^2)$$$, но я до него не додумался бы.)

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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.

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    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.