воскресенье, 27 декабря 2020 г.

С нежный ангел

Сегодня мы всё-таки сходили в Токио-City. А после сытного обеда поваляться в снегу - самое оно. Лёшку они вообще с головой закопали, но он сам любит это дело.

Питер стал белым

Второй день ходим кататься с горки. Нева ещё не замёрзла. Из-за ветра достаточно холодно, но людей это не останавливает.

суббота, 26 декабря 2020 г.

Есть запрещается

Сегодня по традиции пошли к метро встречать Мишку с кружка ЮМШ, а потом в Токио-City. Но нам сказали, что Беглов запрещает ужинать в ресторанах после 19:00. Видимо, заботится о здоровье граждан. Точнее, о том, чтобы они худели.

Inside

Epic Games раздавали вторую игру студии, которая подарила нам Limbo. Это не продолжение, но весьма похожа по исполнению.
Очень круто! Особенно то, что добавилась глубина сцены:

пятница, 25 декабря 2020 г.

Ни одной бабки не пострадало


Сначала была пристрелка метров на 15 в свободном режиме. Я был не очень аккуратен и тренер мне сказал повторить её пару раз - сначала по одному выстрелу, затем двойками.


Далее мы стали учиться стрелять по мишеням, частично закрытым белыми штрафными мишенями. В просторечии - "бабками". Стрелял сидя метров с двух-трёх: двойка в нижнюю, аккуратно в верхнюю, перенос (влево или вправо), затем снова двойка в нижнюю и аккуратно в верхнюю. Сначала просто так, затем стрелял с вывешиванием со стула. Тут главное - не упасть. Темп - хороший, все попадания - на отлично...
Затем почти то же самое, но перенос на дальнюю мишень. Там разброс побольше, да и темп упал, зато бабку только слегка зацепил за перфорацией. За это штрафных баллов не начисляют...


Закончили тренировку стрельбой на 15 метров - самовзводом в металл, перенос в мишень под бабкой, потом - над бабкой. Я даже было подумал, что подстрелил бабку, но это оказался рикошет. За него тоже нет штрафных баллов. А вот попадать самовзводом в металл с 15-ти метров - очень сложно. Особенно, когда пальцы устали под конец тренировки.

Собрание оркестра

Прислали фото с последнего собрания. Жаль, что в этом году поездка сорвалась, но им и без неё весело:

четверг, 24 декабря 2020 г.

Неожиданно

А вы знаете, почему одни дорожные знаки перечёркнуты слева направо, а другие - справа налево? Я тут прочитал, что это из-за латинской N в слове No, обозначающем в данном случае запрет какого-либо действия. Во всех остальных случаях, когда дорожный знак перечёркнут справа налево, это обозначает лишь отмену ранее установленных ограничений соответствующим знаком.

среда, 23 декабря 2020 г.

Справедливые числа

У нас с Мишкой на прошедшем соревновании вторая задача прошла претесты, но в зачёт не попала, так как какие-то тесты упали по времени. Сегодня мы с ним её разбирали.

Основные две оптимизации проверки делимости числа:
1. Сначала я собрал все цифры в Set, который ещё дополнительно уменьшил по следующим правилам:
    val set = mutableSetOf<Char>()
    string.forEach { set.add(it) }
    if (set.contains('9')) set.remove('3')
    if (set.contains('8')) set.remove('2' и '4')
    if (set.contains('6')) set.remove('2' и '3')
    if (set.contains('4')) set.remove('2')
    set.remove('1')
    set.remove('0')
2. Потом я оптимизировал проверку делимости BigInteger, используя признаки делимости на 2, 4, 5 и 8. Но эта оптимизация уже не дала сильный прирост, как предыдущая. И всё равно решение задачи не принимали из-за 11-го теста.

Пришлось долго думать над условием, что же я пропустил и понял, что количество проверяемых чисел в одном тесте может быть большим, но туда могут передавать одинаковые или близкие числа. И я добавил кэш Map<Ref>, чтобы не пробегать второй раз для записи в него.
  data class Ref(var value: BigInteger)
  ...
  val dividend = readLine()!!.toBigInteger()
  val applicable = map[dividend] ?: Ref(dividend).also {
    while (true) {
      map[it.value] = it
      if (test(it.value)) break
      it.value = map[++it.value]?.value ?: continue
      break
    }
  }
В результате решение задачи приняли с временем прохождения 1715 мс. Подумав над условием задачи, я понял, что для неё можно не использовать BigInteger, а достаточно использовать Long. Это позволило сократить время исполнения до 1169 мс, а использование памяти - в два раза (с 130000 до 60000 кб)

вторник, 22 декабря 2020 г.

SmartStool KW02B

Коллега предложил забрать его коленный стул и я успел среагировать быстрее всех - минуты не прошло. Пацанам очень понравилось - Миша с Лёшей его поделить не могут. Чувствую, что конкуренция только усилится, когда Катя из садика вернётся.

Дикие пробки

Сегодня с утра надо было съездить на Василевский остров. Ничто не предвещало - Yandex показывал 4. В результате, туда-обратно я провёл за рулём более трёх часов. Такое ощущение, что весь город самоизолируется по машинам и катается по центру.

воскресенье, 20 декабря 2020 г.

Первый блин комом

Поучаствовали сегодня с Мишкой в рейтинговом соревновании по программированию. Оба решили по две задачи, которые прошли претесты, но на рейтинг повлияла только первая, ибо вторая провалилась по времени на основных тестах. Я тупо забыл использовать BigInteger и за 10 минут до конца бросил решать третью задачу, чтобы поправить вторую, но не успел. Теперь у меня рейтинг 386, а у Мишки - 380. Забавный опыт!

Лента меняется

Пришли в магазин, а нам сканеры не выдают - пишут "поменяйте карту". Пришлось идти на стойку информации и переоформлять. Новые сканеры неудобные и тормозные. Теперь нет возможности плюсиком посчитать 15 сырков, например. Надо кликать каждый, а после клика сканер в себя несколько секунд приходит...

суббота, 19 декабря 2020 г.

Шахтёрство не предлагать

Вернулся в Пузырь, а тут дорогие миссии раздают. В принципе, чтобы заработать 50M надо ещё и потратить 20-30M. Но это только тому, кто закупает и везёт товар. А те, кто в Крыле, получают все 50M только за участие.
Так я на основном аккаунте заработал ещё 150M для второго.

Devs (Ex)

Посмотрели мини-сериал Программисты. Очень затянутый, очень запутанный, но очень красивый. В последней серии всё стало ещё запутанней. В результате, послевкусие такое: мы придумали клёвую идею, но не придумали, как её закончить.

Вечернее Рыбацкое

Что такое осень из Японии?

пятница, 18 декабря 2020 г.

Праздничный концерт

Как у нас принято, после новогоднего шоу устроили концерт. Как обычно, никто не знал, кто будет выступать. Сегодня это оказалась немецкая рокабилли-группа The Baseballs. Мне такое нравится - послушал с большим удовольствием. До Stray Cats может и не дотягивает, но до The Brian Setzer Orchestra или каких-нибудь Red Elvises - вполне. Прикольной фишкой мне показалось троеголосие. В какой-то момент они мне напомнили Van Canto. Им тоже подарили пижамы от JetBrains, а барабанщик вообще оказался фанатом PyCharm. Коллеги предлагают подарить ему лицензию.

Подарки - в студию!

Сегодня у нас новогодний корпоратив. Сижу - смотрю, как русские люди треплются между собой на английском. Вначале было веселее, когда коллеги из Индии, Японии и других необычных мест про их традиции рассказывали. И тут приходит доставка с подарками от JetBrains. Неожиданно приятно!

четверг, 17 декабря 2020 г.

Упражнение 4

На последнем упражнении я оторвался - всего лишь одно "чарли" за 28 секунд. Но это было самое лёгкое упражнение. Единственное, что я лопухнулся со сменой магазина, но по времени - не сильно. Хит-фактор - 3.6759 (41.07%).

Посмотреть прохождение: пистолет и карабин.

Упражнение 3

Третье упражнение обстрелял совсем плохо. Тут я чуть ли не половину времени потратил на стрельбу по хитро заныканному металлу, который всё никак не хотел падать. Пришлось даже доставать третий магазин. Хит-фактор - 1.3106 (23.27%). А в самом начале шёл вполне неплохо, несмотря на "мисс". Если бы не достреливал, то хит-фактор был бы заметно выше.

Посмотреть прохождение: пистолет и карабин.