Алгоритмы - Собеседования, Олимпиады, ШАД – Telegram
Алгоритмы - Собеседования, Олимпиады, ШАД
11.4K subscribers
35 photos
7 videos
10 files
154 links
Номер заявления регистрацию в РКН: № 5731053751

Чат: @algoses_chat

По всем вопросам: @vice22821
Download Telegram
Вот и интервью с настоящей легендой! У нас в гостях ДиМашина, поступивший на физтех со 127 баллами ЕГЭ. Почему именно физтех? Какие учебные лафхаки работают? Почему нравится бить людей? Ну и прямо на ваших экранах, товарищи, Дмитрий поступит в ШАД!

Смотрим! Смотрим! https://youtu.be/5l7O2ToX1_8
💊23🤣137
Вот и новый ролик вместе с Михаилом Абрамовичем! Разбираем миленькую задачку (решить в силах даже дошкольник) из собеседования в ШАД последнего набора и объясняем, почему ШАД - это лютая база и как туда поступить.

Смотрим! Смотрим! https://youtu.be/Kcli5gW_uAQ
7
Задача Яндекса/Шада.
Задача набирает обороты, рекомендую обратить на нее внимания всем кто готовится к собеседованию.

Дается два массива a, и b. Найти количество подотрезков в массиве а, что в этих подотрезках существуют подпоследовательности равные массиву b.

Решение:
Условия задачи сложнее чем решение. Не пытайтесь придумать решение быстрее чем за квадрат

Решим за квадрат: Переберем левую границу отрезка l, 0<=l<=n-1. Стартуем с этой позиции циклом i, поддерживая сколько первых элементов смогли собрать из массива b.
Пусть собрали cnt, тогда мы увеличиваем счетчик, если a[i]=b[cnt]. Как только собрали cnt=b.size, для фиксированного l, в качестве правой границы отрезка подойдут i, i+1, …, b.size-1. Мы можем просто в ответ прибавить b.size-i.

Дальше сдвигаем l и применяем тот же алгоритм
12👍3🔥2👌2👏1
Задача с компании HFT (немогу сказать с какой именно)
Вам дается n строк, где число n четное. Ваша задача найти наибольшее число k, такое что существует способ разделения строк на пары, что в каждой паре хотя бы k первых символов совпадает.
Например:
4
abcd
abbb
efaa
efcd
ответ 2.

Решение:
Самое простое что приходит в голову это забинарить число k, дальше записать в словарь первые k букв всех слов, дальше посмотреть что значения всех ключей в нашей хеш-таблице четное число. Такое решение работает за O(N * logK), где N - сумма длин всех строк, K - максимальная длина строки.

Попросят решить задачу за O(N)
Чтобы решить задачу за линию вам понадобиться знания по структуре БОР. Если вы не знает что такое БОР то приходити на наши курсы мы вас всему научим.

И так давайте запишем все слова в БОР - это займет у нас O(N) времени. Давайте потом пройдемся по бору и обходом dfs и выпишем все значения в терминальных вершинках бора в векторв vt.

Зачем мы так сделали ????
Посмотрите внимательные на строки которые находятся на позициях vt[i] и vt[i-1] (i-четное) вы можете заметить, что для строкм на позиции vt[i-1] лучше всего подходит строка на позиции vt[i], осталные все строки имеют общий префикс меньшей длины.
Так получается чисто из за обхода БОРа с помощью dfs. Если детальнее хотите понять этот момент то приглашаю вас на курсы.

И так вот у вас есть вектор vt, вы просто проходитесь по четным i и смотрите наибольший общий префикс для строк на позиции vt[i] и vt[i-1] обновляете ответ через минимум по всем таким общим префиксам.
Решение за O(N).


Код в комментариях.
🔥11👍2🤷‍♂11
Полный цикл отбора в HFT (компания Teza)

Товарищи, понравилась ваша реакция под прошлым постом, потому специально для вас попросил выпускника наших курсов рассказать про отбор в одну из самых популярных компаний HFT, в которую вполне реально попасть из РФ.
Далее представлен слегка отредактированный текст нашего выпускника.

Три года назад окончил мехмат МГУ. Во время учебы занимался спортивным программированием (но не так успешно). После университета пошел разработчиком. Успел поработать на Python и C++. В какой-то день я решил поменять свою жизнь (расстался с девушкой) и искал то, что будет интересно для меня, и наткнулся на HFT. Чуть-чуть поизучав, я понял, что это то, что нужно. Высокие нагрузки на работе, применение математики, С++, алгоритмов, хорошая зарплата.

Начал копать HFT компании и нашел немало, но, к сожалению, я не проходил скрининг резюме. Позже наткнулся на HR в Linkedin, которая работала в ереванском Teza. Она посмотрела мое резюме и дала пару советов, как улучшить. Так что ребятам, которые планируют в будущем подаваться в HFT компании, да и не только туда, советую поработать над своим CV.

Она предложила мне пройти собеседования на SOFTWARE DEVELOPER в QUANTITATIVE команду. В целом это не то, что я хотел, но решил попробовать раз уж квантом на тот момент пока никуда не взяли.

Пока подавался в компании, я параллельно готовился по линейной алгебре, теории вероятности и по алгоритмам.
По алгоритмам я попросил Тимура подготовить меня, брал у него менторство и три месяца плотно решали много задач.
По математике также готовился по курсам Поступашек (кстати в это воскресение уже стартует теор вер).

Всего было три этапа.

Первый этап
Скинули ссылку hackerrank, в котором были две задачи. Обе задачи были на алгоритмы, и надо было решить на время. У них был свой практоринг.
Задача 1: дается два массива чисел, проверить, правда ли одна является подпоследовательностью другой.
Задача 2: на плоскости даются n городов (просто точки). Дальше даются q запросов. Каждый запрос — это точка (x, y), ваша задача — найти ближайший город к (x, y), но чтобы у них хотя бы одна координата была равна. Кстати, подобные задачи с решениями постоянно выкладываются здесь, товарищи.

Решил эти две задачи и пригласили на следующий этап.

Второй этап
Собеседование в котором была только математика. Ниже я перечислю вопросы, которые помню.
-Чему равен ранг x*x^t где x - вектор столбец.
-Найти все собственные значения для x*x^t
-Какие могут быть характеристические корни у матрицы A, если A^4 = A^2.

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

Это не весь список вопросов, так как уточняющие вопросы возникали и в ходе ответа.

Пригласили на третий собес:

Третий этап
Уже по кодингку и хард скилам.
-Начался разговор с баз данных, какие использовал, что делал. Использовал ли Postgres.
-Airflow, Hadoop
-Был ли опыт в ML
-На мое удивление дали задачку на numpy)
-По большей части спрашивали Python и С++.
В целом по языкам программирования вопросы были не сложные, стандартные. Может из-за того, что у меня был опыт работы.
Спрашивали про выделения памяти, про шаблоны, версии С++, ООП на питон и на плюсах. Не было ничего сверхъестественного.
Подчеркиваю, я не собесился на кванта. У квантов достаточно жесткий собес по плюсам.
В целом третий этап собеса будет несложным для человека, который имел опыт работы на С++ и python.

Предложили оффер и релокацию, но к этому моменту меня позвали в другое место с более лучшими условиями. А куда именно узнаете в следующем посте, товарищи. Давайте соберем 700 огоньков, чтобы понимать: тема для вас интересна и ее нужно продолжать.
🔥855👍41
Intern week offer от Яндекса в самом разгаре! Для участия нужно решить контест до 4 ноября, его задания уже в нашей БОТАЛКЕ, там же можно обсудить задания вместе в админом.

Напомню, что в случае неудачного прохождения секций фриз на полгода сохраняется! Преимущество нынешнего week offer лишь в ускоренном прохождение отбора: меньше риск, что HR вдруг уйдет в отпуск и забудет вас передать коллеге, да и намного меньше шансов, что у вас у самого что-то случится(сессия, бросит девушка) и придется отложить прохождение отбора! Кстати задания контеста несложные, студенты наших курсов справляются с ними за 300 наносек😎😎

@algoses
🔥3👍1🙊1
Набор на стажировку в VK проходит прямо сейчас, товарищи! Поэтому сегодня специально для вас пообщались с Иваном Нагайко, он пришел в компанию еще стажером, а вырос техлидом😎 Обсудили все секреты и лайфхаки Ивана, получилось очень интересно и полезно!

Смотрим! Смотрим! https://www.youtube.com/watch?v=eNwVeCNfZu0
2👌2😁1
Media is too big
VIEW IN TELEGRAM
Курс по алгоритмам стартует уже в это вокресение (еще можно записаться)! Как материал для подготовки записаны вот такие вводные уроки, где разбираем всю необходимую теорию на конкретных примерах, задачах из того же самого ШАД. Такие вводные уроки дополняют и расширяют материал каждого занятия в 2 раза. Ведь Поступашки реально хотят научить ребят, дать им качественное образование, а не просто взять деньги и послать куда подальше!!
9🔥6
Стартовала регистрация на «Технокубок»!

Победа или призовое место дает бенефиты при поступлении в вуз: зачисление без экзаменов или 100 баллов за ЕГЭ по информатике. А еще участники соревнования смогут пообщаться с представителями МФТИ, МГТУ имени Н. Э. Баумана и экспертами VK на офлайн-площадках в финале.

Для участия важно знать математику и информатику, а также уметь программировать на С, С++, Java, С#, Python, Kotlin или Go. Подготовиться можно с помощью курса «Старт в олимпиадном программировании» от VK Education. Отборочные раунды пройдут уже 17 ноября, 8 и 22 декабря.

Всем участникам удачи!
🔥11
Поступашки продолжают набор на курс по линейной алгебре!

Хочешь поступить в ШАД или магистратуру, затащить олимпиаду? Или просто мечтаешь стать крутым специалистом, тащить собесы, но не хватает фундамента? Тогда тебе к нам!

Курс заточен под практику и решения задач, вся теория будет разобрана на конкретных задачах и примерах, которые будут на экзаменах и на собесах. На курсах вас ждут куча авторских задач для подготовки с разбором, доступ к закрытой базе заданий ШАДа, разбор реального контеста в ШАД, разбор ВСЕХ задач с собеседований в ШАД, Ai Masters, ААА, эксклюзивные материалы для проверяющих с собесов и много других приятных бонусов. А после прохождения курса тебя ждет пробный экзамен, собес с подробной консультацией и дальнейшим сопровождением ВПЛОТЬ до поступления в место мечты😎

Более того, ты сможешь получить ВСЕ ДЕНЬГИ потраченные на курс обратно, если первым решишь все домашние задания 😎😎

Курс длится 8 недель, каждую неделю по 2 урока, огромное количество дополнительного контента, более 40 часов уроков с последующим доступом к записям и ДЗ с проверкой. На семинарах с каждым учеником общаются по очереди, полноценное общение как здесь (никаких дурацких чатов, преподаватель лично выслушивает твои решения). Ежедневная связь, пробные собесы, экзамены, персональные рекомендации, инсайды и домашнее задание с проверкой, код ревью и с разбором от преподавателя, который отвечает даже после завершения курса! Все будет еще круче, чем на всех прошлый курсах (отзывы тут). Все для того, чтобы поступить в ШАД/ топовую магу уже летом или мы вернем потраченные деньги!

Программа и формат: чтобы ознакомиться с программой курса, посмотреть на то, как выглядят наши лекции и семинары, просто переходите на страницу курса.

Цена 7500р за курс, до 7 ноября, далее повышение цены до 8500р. Если покупали наши курсы ранее, то цена 7000р. Если же покупали аналогичный курс, но хотите больше новых задач и материалов, то новый курс (материал полностью обновлен и расширен) обойдется вам всего за 5000 р!

Даты: начала курса 10.11

Как купить: приобрести курс и задать вопросы можно по данному адресу: @menshe_treh

Еще курсы серии:
➡️ алгоритмы старт 10.11
➡️ математический анализ старт 17.11
➡️ теория вероятностей старт 03.11
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
Задача Яндекса:

Задача сейчас набирает обороты, и так вам дается бинарное дерево (с прописанной структурой вершин). В каждой вершине стоит одна буква из [a, z].

Две вершины считаются равными если множество букв в под деревьях совпадают. (Важно, именно как множество совпадает)

Вам нужно найти две равные вершины с максимальной суммой вершин в под деревьях.

Решение:

Давайте будем считать, что вы умеете находить количество вершин в под дереве(это можно делать во время дфс, взяв количество вершин в левом под дереве и в правом, дальше сложить и прибавить 1)

Создадим словарь, где в качестве ключа будем передавать лист (вектор) размера 26, а значением будут две вершины(на самом деле можно и одну)

Суть словаря следующая:
Вектор будет размера 26, где на позициях будут стоять 1 если такая буква есть и 0 иначе.
Таким образом две вершины равны если их эти вектора равны.
А значением будет две вершины у которых самое максимальное количество детей. То есть значения - это pair <Node, Node> ваша задача туда поставить две вершины с максимальным колиеством детей.

Чтобы найти ответ нужно пройтись по словарю, и взять в качестве ответа такую пару у которых сумма коилчество детей макисмально.


Псевдокод в комментариях:
🔥13👍41👏1
Forwarded from Матеша — ШАД
Стажировка в Т-банк на аналитика в самом разгаре! Для участия нужно решить контест до 13 ноября, его задания уже в нашей БОТАЛКЕ, там же можно обсудить задания вместе в админом, а решения есть на нашем ютубе (задания не поменялись)

Напоминаю, что если вы решали экзамены в основной набор, то на донабор они зачтутся автоматически, НО вы идете по отдельному конкурсу! То есть вас могут пригласить на два собеса: в основной волне и в донаборе! Поэтому обязательно подаемся.
Кстати задания контеста несложные, студенты наших курсов справляются с ними за 300 наносек😎😎

@matesha_shad
4👍1🔥1
Отбор на стажировку в Яндекс в самом разгаре! Специально для вас пригласили Эву Эльфи пройти знаменитое алгоритмическое собеседование в Яндекс с подробным фидбэком, разбором ошибок и советами от Тимура, который сам провел десяток таких собеседований.

Смотрим! https://www.youtube.com/watch?v=O8a6orLfSj0
💊30🔥4👏1🌭1🍌1
Задача Яндекса.

Имеется n пользователей, каждому из них соответствует список email-ов (всего m email-ов). Например:
user1 -> xxx@ya.ru, foo@gmail.com, lol@mail.ru
user2 -> foo@gmail.com, ups@pisem.net
user3 -> xyz@pisem.net, vasya@pupkin.com
user4 -> ups@pisem.net, aaa@bbb.ru
user5 -> xyz@pisem.net

Считается, что если у двух пользователей есть общий email, значит это один и тот же пользователь.

Требуется построить и реализовать алгоритм, выполняющий слияние пользователей. На выходе должен быть список пользователей с их email-ами (такой же как на входе).

В указанном примере ответ на задачу будет следующий:
user1 -> xxx@ya.ru, foo@gmail.com, lol@mail.ru, ups@pisem.net, aaa@bbb.ru
user3 -> xyz@pisem.net, vasya@pupkin.com

Решение:

Честно говоря, задача прикольная. С одной стороны, простая, а с другой — можно легко уйти не туда.

Подумаем про графы. Было бы хорошо выделить юзеров отдельно и множество почт отдельно.

Давайте визуально нарисуем слева вершины, которые соответствуют юзерам. В нашем примере их 5.

А справа выпишем множество различных почт.

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

Если кто не понял, то это двудольный граф. И вся задача сводится к тому, чтобы найти количество компонент связностей. То есть делаем просто обход графа и запоминаем набор юзеров, которые посетили, и набор почт.

Например, запускаем ДФС с вершины user1 и посещаем вершины user2, user4,
xxx@ya.ru, foo@gmail.com, lol@mail.ru, ups@pisem.net. В качестве ответа вы берете любого юзера и все почты, которые успели посетить. Дальше запускаете ДФС от непосещенной вершины (это вершина user3) и запускаете ДФС.

Единственное вам нужно пронумеровать вершины. Вы можете завести словарь куда будете писать номер вершины которому соответствует строка. Например
'user1' - 0,
'user2' - 1,
'
xxx@ya.ru - 2'
.......
То есть каждой строке дать число. Зачем мы это делаем???
Попробуйте построить граф на строках и написать дфс, думаю веселье такое себе. Так что пишем словарь который будет строки переводить в числа. Также полезно создать еще один словарь, который будет по индексу вершины узнавать что за строка. Например из примера выше для индекса 2 соответствует строка
xxx@ya.ru.

Асимптотика линейная.


Буду благодарен, если напишите код.
🔥11😁42👍2👏1🌚1
Вот и интервью с настоящим гением! У нас в гостях Антон Садовничий, всероссник и межнарник. Антон знаком с В. В. Путиным, заканчивает ФМПИ МФТИ. Поговорим про секреты такой продуктивности, поговорим про его путь в науке и в карьере, и узнаем что именно в конце концов выбрал Антон! Получилось очень интересно и познавательно, товарищи.

Смотрим! Смотрим!
https://www.youtube.com/watch?v=totKwx9i_tU
9😁1
Честный обзор стажировки в Яндексе (Бэкенд C++ 2024)

У выпускников наших курсов стажировка уже подошла к концу, рассказываем все как есть.

Моя стажировка проходила в команде, которая занималась разработкой приложений для такси.

До выхода на работу с вами связывается начальник и спрашивает какой ноутбук хотите Mac/Windows/Linux, а также сколько дюймов. Я сказал мак и желательно самый большой, мне его и дали. Характеристики ноута были очень даже хорошими.

В первый день работы дают подарки: футболка, портфель, бутылка, и возможно более мелкие подарочки.
Честно скажу бутылка очень плохая, состав ужасный, и в целом дешевый.
А вот портфель реально хороший, у меня на них фетиш, и этот реально топовый жеребец.
Футболка как футболка, красивая с прикольными надписями.

После получения ноутбука вы подписываете бумаги. Дата выхода стажеров – среда. В этот день проходят онбординги и с вами связывается специалист по безопасности, настраивает ноутбук через тим вивер. Вероятно, есть программы, отслеживающие вашу активность.
Дальше есть несколько важных курсов. Их нужно пройти до начала работы. Также возможно будет курс от команды, который поможет быстрее вкатиться в работу.

Яндекс в этом плане организован, и мне эта сторона понравилась.

Процесс работы:
-Есть гибрид - и это очень радует.
-Большинство команд начинают работу после 11:00, так что можете обсудить с начальником во сколько вам удобно, главное быть в митингах.
-Задачи для вас будут даваться рандомно. У каждой команды есть пак задач, и задач на самом деле много, вам просто будут давать из этого пака какую-то задачу.
- Большинство технологий написано Яндексом и нет в открытом доступе, так что вам придется разбираться в документации которая написано несколькими людьми.
- Местами прям виден неоптимизированный код с точки зрения алгоритмов. Например данные записаны в вектор и при поиске приходится проходиться по вектору, хотя можно было бы использовать map. Если у вас возникнет мотивация переписать код, то вам придется менять код во многих файлах, да еще чтобы ничего не упало..... Короче никто за это не берется. Скорее всего эти участки кода не критичны.
-Часто придется писать тесты, чтобы убедиться правильно ли работает код. Я лично разобрался за месяц, то как именно работают тесты).
-Переработки есть. У меня лично было пару раз.
-Знания языка С++ прям сильно вам помогать не будут (именно в такси, думаю и во многих других направлениях). Куда сильнее помогут навыки работы с API, Базами данных, логированием, STQ, и тд.

Плюсы в Яндексе:
-Хороший офис, компенсации еды (примерно 10-12 долларов в день)
-Гибрид
-Сфокусированы на своей задаче, в маленьких компаниях обычно приходиться заниматься всем, а тут вы в своей области работаете. (это может быть и минусом, но для меня это плюс)
-Свободный график
-Если смотреть на общую картину то коллектив весьма хороший. Много умных ребят, много девушек, много стажеров, много позитивных людей.
-В Яндексе очень много курсов, которые вы можете приобрести бесплатно или со скидкой. Например английский можно получить по 50% скидки. Лекции ШАДа по любому направлению можно смотреть (но доступа к домашкам нет, надо этот вопрос отдельно решать)
-Каждый год можно собеситься и поднимать зп.
-Когда непонятные баги с их гитом, то можно обратиться в отдельный сервис за помощью, они будут помогать. Насколько знаю это большая проблема в других компаниях. Люди месяцами пытаются решить конфликты в гите.
-Стажировка сильно расширяет кругозор в плане технологий и работы бэкенда. Даже если вы уйдете из Яндекса, ваш опыт поможет найти работу.

Минусы в Яндексе:
-Переработки есть
-Прям сильного погружения в С++ в команде такси не ждите, я думал буду писать хардовый код на плюсах, а на самом деле изменял уже написаный код + дописывал.
-Малейшие изменения кода приведет к конфликтами с большим количеством файлов, придется в каждом файле исправлять код, да и в целом процесс выкатки в тестинг, а потом в прод очень долгий.
🤓13👍103🦄2👏1😁1
Коммунизм уже наступил, товарищи!

Всем нашим ученикам мы стремимся дать качественное и доступное образование. На семинарах с каждым учеником общаемся по очереди, только полноценное общение. Помогаем им составить резюме, даем личные рекомендации, предлагаем интересные вакансии, проводим пробные собеседования. А главное все ребята, которые реально готовы вкладываться, первыми выполнять дз и слушать наши рекомендации как выпускница нашего прошлого курса по подготовке к ШАД, могут УЧИТЬСЯ У НАС АБСОЛЮТНО БЕСПЛАТНО!

[ Записаться на курсы ]
1🍾1
This media is not supported in your browser
VIEW IN TELEGRAM
🍌33🤣11🥱5🥰4😍2🌭1
Вот и разбор собеседования в ШАД 2024 года! Обязательно делимся со всеми друзьями, которые собираются поступать в ШАД или топовую магистратуру.

Смотрим! Смотрим! https://youtu.be/6MDpMTkIe3o
👍1
Задача Яндекса.
Достаточно старая задача, но сейчас стала набирать обороты.

Задача: Дается массив целых и уникальных чисел, ваша задача сжать этот массив, например был у вас массив
-3, -10, 1, -2, 2, 3, 5
то после сжатия ваш массив превращается в
[-10], [-3, -2], [1, 3], [5].
(Я думаю на примере можно понять что просят сделать)
Вывод может быть необязательно в отсортированном виде, то есть вывод
[-3, -2], [1, 3], [-10], [5] тоже считается корректным.

Решение: (если подумал отсортировать массив то лучше посмотреть разбор)


Конечно легче всего массив отсортировать и дальше двумя указателями решить. Такой алгоритм будет работать за n*logn. Такое решение не примут на собесе.

И вот как решать за O(n).
Пройдемся по массиву и запишем их всех в словарь. То есть ключом будет элемент в массиве, а значением 1.

Теперь будем делать следующий алгоритм пока словарь не станет пустым.

Пусть зафиксировали ключ key. Мы как и в двух указателей будем искать такие максимальные r, l, что все числа [key-l, key+r] есть в словаре. Опять таки l, r ищутся очень просто. Вы делаете l=r=0, дальше смотрите есть ли в словаре ключ key+r, если есть то увеличиваете r, иначе останавливаетесь, аналогично для l.
Числа которые нашли стоит удалить из словаря и повторить алгоритм заново.

Время работы алгоритмы O(n).

Если наберет много реакций сегодня выложу код.
71🔥11👍7🤔5❤‍🔥1👏1
Вы замечали, что на собеседованиях часто встречаются задачи, связанные с подстроками и подпоследовательностями? Даже если проанализировать все задачи в этом канале, то можно увидеть, что более половины из них посвящены подстрокам.

Было бы логично научиться решать такие задачи, чтобы лучше справляться с собеседованиями. Однако возникает вопрос: где найти подходящий материал для подготовки?

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

С удовольствием поделюсь с вами 30 заданиями на подотрезки/подпоследовательности, которые помогут вам подготовиться к собесу.
https://docs.google.com/spreadsheets/d/1FZONKfiZZcNMxz22XX_hHxSd6pnrYnFw_js6_G9ueBA/edit?gid=0#gid=0


Если вы хотите получить больше задач по разным темам и структурированную подготовку к собеседованию, то вам стоит обратиться к ментору https://news.1rj.ru/str/algoses/17. Он поможет вам легко подготовиться к предстоящему испытанию.
❤‍🔥193🔥1👏1