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

Автор orz, история, 3 года назад, перевод, По-русски

Сегодня demon1999 радует нас замечательным праздником — сегодня ей исполнилось 23. Спасибо ей за это!

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-английски

Today there were two nice contests in a row: AtCoder Regular Contest 149 and Codeforces Round 824 (Div. 2). I participated in both of them.

  1. My participation in AtCoder Regular Contest 149 was quite a failure, I neither speedforced nor solved any of the harder problems. The video is already on my channel: https://youtu.be/3D1IbPtrLWg

  2. My participation in Codeforces Round #824 (Div. 2) wasn't a failure, I even finished second! (And this is my by far the most successful participation in an unrated round.) The video is uploaded but still processing, so soon you will be able to watch it. As always, a nice bonus is a detailed editorial in the end of the video: https://youtu.be/fbFAg1th5oM

Subscriptions, comments, likes, watches and other ways of expressing feedback are welcome!

UPD. Now both videos are watchable. Enjoy!

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-английски

Dear everyone,

As always, my screencast and detailed analysis of problems A–G of Codeforces Global Round 22 is already uploaded (but still processing for high-quality viewing) on the channel. This time the video is huge — over five hours!

Please watch, enjoy, learn, comment — anything you want!

UPD. The video is ready for viewing.

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-русски

Признаться честно, не люблю я контесты от крупных компаний типа Гугла и Фейсбука. Когда в них участвую, я из-за формата соревнования чувствую постоянный дискомфорт, как будто крупные компании предпочитают игнорировать то, как проводят соревнования по программированию опытные платформы типа Codeforces и AtCoder. Но сегодня прошёл так далеко, как ещё никогда не заходил — занял 201-е место на Meta Hacker Cup 2022 Round 2 и прошёл в Round 3 (предшествующий финальному). Не надюсь, что я пройду в финал, но для меня и третий раунд — уже вполне себе финал!

Запись моего участия можно посмотреть здесь.

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-английски

Today I participated in Codeforces Round 819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022. At first glance, this was really a nice contest, and even though some problems were a bit too technical, they did contain some certain ideas (and as to whether these ideas were cool and beautiful, I guess there's no accounting for taste). However, the tests in the harder problems weren't strong enough. For example,

Nevertheless, I screencast the solving process (with my struggling to solve 1726F - Late For Work (submissions are not allowed)) and explanation of problems A–F, and I am now uploading it to YouTube, the video should appear here in several hours. Please leave your feedback (and other cases of high- or low-quality testing in this contest) in the comments!

UPD: While I was sleeping, two news have happened:

  1. The video uploaded successfully.

  2. The round became unrated because of the problem F, from which I suffered a lot during the contest. (By the way, the suffering had nothing to do with the quality of the tests in this problem or with this issue, I just made stupid bugs). You may read this and this blog to get to know the incident.

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-английски

I got to the 41st place in Codeforces Round 814 (Div. 1), which quite surprised me because my last several contests were also pretty lucky, not to say in this contest I was extremely slow in solving the problem A. Still I followed the tenet from the never_giveup's handle and finished the contest, it happened to be not that bad. Moreover, I beat my personal best of rating. I screencast and explained 1718A2 - Burenka and Traditions (hard version), 1718B - Fibonacci Strings, 1718C - Tonya and Burenka-179 and partly 1718D - Permutation for Burenka from this contest here: https://youtu.be/6iaSJikYZ-o

Feel free to watch and leave your invaluable feedback!

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-английски

Since there were not that many Div. 1 rounds last several days, I decided to compete in a Div. 2 round. This time my participation was quite poor, but still I solved and explained some of the problems in front of a camera, so I hope that my video will be useful for my adorable viewers: https://youtu.be/ZF42Y5cQhf4

As with my previous video, any sort of feedback is welcome in the comments.

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, перевод, По-русски

Недавно я стал записывать на видео процесс решения контестов и уже выложил несколько записей на свой Youtube-канал. Все эти видео на русском языке, потому что мне проще на нём думать и рассуждать.

Сегодня в качестве эксперимента я решил записать CodeTON Round 2 и говорить в течение ролика на английском языке. Да, мои рассуждения там получились довольно фрагментированными (в спидфорсес-условиях не хочется тратить много времени на объяснение идей, которые пришли в голову, когда уже пора садиться кодить их). Тем не менее, поскольку я занял 24-е место, я подозреваю, что видео всё равно получилось интересное и в чём-то познавательное, поэтому приглашаю всех желающих понаблюдать за процессом: https://youtu.be/ZK8vVVhoQXI

Так как ниша ютуб-блоггинга для меня весьма нова, жду любых советов. Можете их оставлять в комментариях под постом или под видео, а также отправлять мне в личку.

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-русски

Several days ago I published a table with first people to reach certain ratings. It featured only ratings above 1500, and adamant advised to do the same, but on achieving ratings below 1500. I found it quite interesting, and, after several days of collecting data about participations of 447911 Codeforces users, I finally made this table.

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-русски

Several days ago I published a table with first people to reach certain ratings. It was a bit raw because, firstly, it was based on top 20000 Codeforces users by rating, and, secondly, because it only gave information about ratings divisible by 50. Now I have prepared a table that is of more complex design, but both issues are resolved. Good luck understanding what is going on in it.

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-английски

Hi there!

Recently after Codeforces Global Round 21 Um_nik noticed that he might be the ninth or tenth person to reach 3600 rating points, but still he did it earlier than Petr. I wondered whether Um_nik really was that attentive to know for sure how many people reached 3600 before him. As this is an objective truth or an objective misconception, I decided to simply check it.

Полный текст и комментарии »

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

Автор orz, история, 4 года назад, По-русски

Рассмотрим такую задачу: даны три целых числа $$$x$$$, $$$y$$$ и $$$m$$$, $$$0 \leqslant x,y \lt m \lt 2^{32}$$$, найти $$$xy\bmod m$$$. По-хорошему хотелось бы просто перемножить эти два числа, а потом применить операцию остатка:

uint32_t prod(const uint32_t x, const uint32_t y, const uint32_t m)
{
	return x * y % m;
}

Как вы, возможно, догадываетесь, это решение неверное. Всё дело в том, что в такой процедуре возможно переполнение: операция x * y выполняется в типе uint32_t, и на самом деле промежуточным результатом выполнения этой операции будет не $$$xy$$$, а $$$xy\bmod2^{32}$$$. Если после этого взять результат по модулю $$$m$$$, он может отличаться от правильного:

$$$ \left(xy\bmod2^{32}\right)\bmod m\ne xy\bmod m. $$$

Выход прост — перемножать необходимо в большем типе:

uint64_t prod_uint64(const uint64_t x, const uint64_t y, const uint64_t m)
{
	return x * y % m;
}

Если так делать, то, поскольку $$$xy \lt 2^{64}$$$, это произведение точно не переполнится, и после взятия результата по модулю получится правильный ответ.

Вопрос: а что делать, если $$$x$$$, $$$y$$$ и $$$m$$$ могут быть больше?

Полный текст и комментарии »

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

Автор orz, история, 5 лет назад, перевод, По-русски

Сейчас проходит церемония закрытия IMO 2021.

Лучшими странами оказались:

  1. Китайская Народная Республика, 208 очков
  2. Россия, 183 очка
  3. Республика Корея, 172 очка
  4. Соединённые Штаты Америки, 165 очков
  5. Канада, 151 очко

Ссылка на английскую трансляцию: https://youtube.com/watch?v=LHi_xjvLEbI

На русскую: https://youtube.com/watch?v=23cTkofxbq4

Полный текст и комментарии »

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

Автор orz, история, 5 лет назад, По-английски

IMO 2021

IMO 2021 opening ceremony takes place right now. Join the chat!

Russian: https://www.youtube.com/watch?v=c3APd3bCrFI

English: https://www.youtube.com/watch?v=DpZnQuUI27Y

Полный текст и комментарии »

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