Viktor
ахха. питоновская магия? 😄
Alexandr
какой там, 100 строк парсинга и строительства дерева)) разве что сумму для первой части можно чуть удобнее посчитать, типо sum(x for x in totals if x < 100_000)
Dimchik
ахаха
Sergei
Больше всего в новом дизайне литкода мне нравится, что в редакторе появился prettier и по option+shift+f делает красиво
slisnychyi
мне наоборот пока подсветка кода не заходит или я привык уже без подсветки писать.
Viktor
решил не жмотничать и поддержать Эрика.
Viktor
две ☕️ в старбаксе ушли на поддержку инфраструктуры и “sushi addiction” 😄
Dimchik
тоже добавил баджик)
Alex Azarov
всё ещё решаете adventofcode? задумайтесь...🧐
Alex Azarov
кстати в прошлом году в лидерборде этого чатика было 23 человека, а в этом году 40
Alex Azarov
ага, из тех 23 сейчас что-то решают только 12
Andrey
сегодня код показывать не хочется 🙈
Вот да, те же ощущения. Как-то грязно весьма получилось
Viktor
кстати в прошлом году в лидерборде этого чатика было 23 человека, а в этом году 40
растём! не все правда пишут в чатик свои решения. а зря, больше не меньше 🙂
Viktor
просто задачи сложнее становятся
Viktor
нельзя однострочником решить 😄
Dzianis
растём! не все правда пишут в чатик свои решения. а зря, больше не меньше 🙂
AOC не хватает такой фичи — когда ты решил задачу, можешь куда-то отдельно записать своё решение. А те кто тоже решили тогда смогут посмотреть его, было бы реально интересно и поучительно
Andrey
а что грязно? парсинг в дерево?
Я решил схалтурить и не стоить дерево. Просто в мапе храню полные пути директорий с их размерами, а рядом еще текущий путь, чтобы все инкрементить по ходу. В итоге с полчаса дебажить пришлось, лишь бы решить и работать пойти. Причесать можно, но уже лень :)
Andrey
Alex Azarov
tuple(map(lambda func: func(__import__("functools").reduce((lambda data, x: dict(cwd={"/":[], "..":data["cwd"][:-1]}.get(x[5:].strip(), data["cwd"] + [x[5:].strip()]), fs=data["fs"]) if x.startswith("$ cd") else (dict(cwd=data["cwd"], fs= data["fs"] + __import__("collections").Counter({"/".join(data['cwd'][:i]): int(x.split(" ")[0]) for i in range(len(data["cwd"]) + 1)})) if x.split(" ")[0].isdigit() else data)),open("input7.txt").read().strip().split('\n'),dict(cwd=[], fs=__import__("collections").Counter()))["fs"]),[lambda fs: sum(dirsize for dirsize in fs.values() if dirsize < 100000), lambda fs: min(x for x in ((v + 40000000 - fs[""],v) for k,v in fs.items()) if x[0] > 0)[1]]))
Alex Azarov
а поскольку я особо котлин не знаю, у меня есть коллега
Alex Azarov
Alex Azarov
Viktor
Anvar
А в чем суть решить в 6:30?
Alex Azarov
А в чем суть решить в 6:30?
по CET задачи выкладывают в 6:00
Alex Azarov
чем раньше решишь тем выше будешь в лидербордах
Dimchik
Впадлу раньше вставать только из-за рейтинга)
Viktor
Впадлу раньше вставать только из-за рейтинга)
Мне вообще в 5 пришлось бы вставать
Anvar
Viktor
Этого хватает на топ100?
Да вряд ли. Там монстры сидят 😃
Viktor
Сегодня тоже неплохая задача, но без всякого алгоритмического выпендройдства — решал в лоб. Инпут 100x100, можно резвиться как хочешь.
Stas
Ребят, я пропустил 5,6,7 дни, реально ли теперь догнать? 😅
Viktor
Ребят, я пропустил 5,6,7 дни, реально ли теперь догнать? 😅
Думаю да. Там не очень сложные пока задачи.
Viktor
А вот через недельку уже лучше уходить в отпуск и садиться решать фултайм 🤣
Viktor
12 часовой стрим 😅
Sergei
Как некоторые таксисты, один проснулся, другой пошел спать в багажник)
V
Ребят, я пропустил 5,6,7 дни, реально ли теперь догнать? 😅
Нет, все, пиши пропало. Жди нового года теперь
Viktor
Нет, все, пиши пропало. Жди нового года теперь
Тут некоторые по такому принципу решили прорешать 2015 год
Viktor
Так что рекомендую подождать 7 лет
Sergei
Подскажите, пожалуйста, по задаче: в массиве найти пары чисел (i <= j), сумма которых удовлетворяет условию 2^X = nums[i] + nums[j]. Вопрос: как-то эффективнее n^2 можно пары составлять?
Sergei
Их сумма - это двойка в какой-то степени
Sergei
если так и есть - записываем пару
Viktor
Их сумма - это двойка в какой-то степени
Ага. Тогда может по аналогии с two sums, как @vtambourine предлагает. У тебя все степени двойки заранее известны, ты можешь составить мапу с разностями степеней и чисел в массиве — потом по ней искать, кто из чисел в массиве дополнит
Sergei
Наверное, так же как two sum через словарь
Dzianis
Лёгкие 10 поинтов на литкоде 😄
Dimchik
Сегодня тоже неплохая задача, но без всякого алгоритмического выпендройдства — решал в лоб. Инпут 100x100, можно резвиться как хочешь.
Ага... первая часть получается через 4 прохода по матрице сделал, с каждой из сторон, сохраняя деревья которые видны в сэт. А вторая часть через какой-то брутфорс, просто по каждому видному дереву во все стороны расширяешься пока не встретил конец леса или дерево побольше...
Alex Azarov
Alex Azarov
чё-т я придумал только каждый элемент отдельно проверять во все четыре стороны, это ещё более неэффективно, зато по памяти O(1)
Viktor
можно оптимизировать
Я просмотрел на ипнут размера 100х100, и забил
Alexander
Alexander
Я просмотрел на ипнут размера 100х100, и забил
сначала забил но это как камень в ботинке
Dimchik
вторую
ага, первая по оптимизации устраивает) а вот вторая такое... но так в голову не заходит как легко оптимизировать)
Viktor
крутой рекрутер
Viktor
Viktor
это реально гениально
Viktor
he didn’t Node how to Express, ну ты понял, понял!
Viktor
Sergei
Dad jokes)
Serega
🤣
Viktor
ахахах
Viktor
надо было ему пару видосов по алгосикам глянуть сперва
Roman
https://hakaton.wagnercentr.ru/ lol
Alex Azarov
https://hakaton.wagnercentr.ru/ lol
что там было, я всё проспал)
Dimchik
решил сделать консоль лог инпута, кактусы - деревья которых не видно со стороны, звездочки - цифра 0 в инпуте :)