Обновить
72.09

Занимательные задачки

Разминаем мозги

Сначала показывать
Порог рейтинга

Какие числа останутся? Интересная задача на логику и математику

В ряд выписаны натуральные числа от 1 до 1024. Петя 10 раз проделывает такую операцию: смотрит все оставшиеся числа и вычёркивает половину чисел.

При этом в операции с нечётным номером Петя вычёркивает числа с нечётными номерами (например, в первой операции вычеркнуты числа 1, 3, 5, 7..), а в операции с чётным номером — числа с чётными номерами. Нумерация каждый раз новая.

В конце останется одно число. Какое?

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

  • Перебором, выписывая ряды чисел после каждой операции и отслеживая их изменения.

  • Написанием кода, который автоматизирует процесс.

  • Через формулы, если удастся вывести зависимость оставшихся чисел от номера операции.

Какие у вас идеи? Делитесь своими вариантами решения в комментариях. А мы потом вернёмся с ответом.

Больше задач — в бесплатном тренажере «Основы математики для цифровых профессий».

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

На картинке — код на JavaScript с ошибкой, который написал специально для Хабра руководитель группы разработки интерфейсов компании «Криптонит» Василий Беляев.

Кто увидел, где ошибка и как её можно решить — пишите в комментариях! А решение этой ошибки оставили под картинкой.

Где здесь ошибка?
Где здесь ошибка?

Если запустим этот код, то получим ошибку

Uncaught TypeError: this.clearHistory is not a function

Проблема находится на строчках 11-13 (на картинке)

this.timeout = setTimeout (function () {
        this.clearHistory();
    }, 0);

Когда мы вызываем setTimeout, то вызываем метод объекта window, и меняем область видимости с нашего конструктора на window ( window.setTimeout() ).

Именно по этой причине у нас метод clearHistory пытается вызываться у объекта window ( window.clearHistory() )

Как можно решить эту проблему?

Вариант 1

const MyItem = function () {
    this.clearStorage = function () {
        console.log ('Очищаем хранилища...');
    };
    this.clearHistory = function () {
        console.log ('Очищаем историю...');
    };
};
MyItem.prototype.refresh = function () {
    this.clearStorage();
    this.timeout = setTimeout (() => {
        this.clearHistory();
    }, 0);
};
const mуItem = new MyItem();
mуItem.refresh();

Заменить анонимную функцию на стрелочную функцию. У них отсутствует свой контекст, и они работают в контексте области видимости, включающий их самих.

Вариант 2

const MyItem = function () {
    this.clearStorage = function () {
        console.log ('Очищаем хранилища...');
    };
    this.clearHistory = function () {
        console.log ('Очищаем историю...');
    };
};
MyItem.prototype.refresh = function () {
    this.clearStorage();
    this.timeout = setTimeout (
        this.clearHistory.bind(this), 0
    );
};
const mуItem = new MyItem();
mуItem.refresh();

Явно передать контекст через метод .bind()

Вариант 3

const MyItem = function () {
    this.clearStorage = function () {
        console.log ('Очищаем хранилища...');
    };
    this.clearHistory = function () {
        console.log ('Очищаем историю...');
    };
};
MyItem.prototype.refresh = function () {
    this.clearStorage();
    const self = this;
    this.timeout = setTimeout (() => {
        self.clearHistory();
    }, 0);
};
const mуItem = new MyItem();
mуItem.refresh();

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

А как бы вы решили эту ошибку?

Теги:
Всего голосов 6: ↑3 и ↓3+2
Комментарии5

Задача об утечке паролей

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

Условие

В компании «ТехноБезопасность» недавно всплыла неприятная ситуация: один из сотрудников каким-то образом заходит под аккаунтами других пользователей.

Специалист по безопасности Дин Завров начал расследование. Изначально он предполагал, что утечка вызвана атаками XSS или CSRF, но лид фронтенд-разработки заверил: подобные уязвимости исключены. Тогда Дин пошел к бэкенд-разработчикам и девопсам, но и они не смогли помочь. Пришлось ему самостоятельно перебирать все популярные варианты утечки паролей.

Задача

Определите, какими способами внутри компании мог произойти несанкционированный доступ к чужим аккаунтам. Предположения о фронтенд-уязвимостях (XSS/CSRF) исключены.

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

Делитесь своими ответами в комментариях. А проверить себя можно в Академии Selectel →

Теги:
Всего голосов 8: ↑7 и ↓1+7
Комментарии2
Рисунок не в масштабе
Рисунок не в масштабе

Найдите x (задача с подвохом).

Подвох в том, что длина нижней стороны треугольника равна 8, а длины двух других сторон в сумме тоже дают 8. Получается, что треугольник вырожденный.

Второй подвох в том, что как только понимаешь, что треугольник вырожденный, хочется сказать, что x = 0. Хотя если подумать немного, становится ясно, что x = 1.

Теги:
Всего голосов 12: ↑12 и ↓0+17
Комментарии4

Решаем задачу про спортзал и логарифмы

Василий увлёкся пауэрлифтингом и начал ходить в спортзал. Василий замерил свой прогресс и оказалось, что он соответствует функции y=12*log₂(x), где x — номер дня с момента начала тренировок, а y — вес (масса), который он поднял в этот день.

Спустя почти год Василий решил оценить свой прогресс. Для этого он сравнил результаты в конце первой недели тренировок и на 343 день. Во сколько раз увеличился поднимаемый им вес за это время?

Ответ ↓↓↓

Задачу можно решить разными способами — используя разные свойства логарифма. Начало у обоих способов одинаковое.

Вес (масса), который может поднимать Василий в день номер x по условию равен 12*log₂(x). Значит, в конце первой недели (на седьмой день) этот вес равен 12*log₂7, а на 343-й день — 12*log₂343. Запишем частное и упростим:

12*log₂343 / 12*log₂7 = log₂343 / log₂7.

Способ 1. Через вынесение степени:

log₂343 / log₂7 =  log₂7³ / log₂7 = 3*log₂7 / log₂7 = 3.

Способ 2. Через переход к новому основанию (в обратную сторону):

log₂343 / log₂7 = log₇343 = 3.

Значит, вес, который поднимает Василий, увеличился в 3 раза. Желаем и вам успехов в спорте!

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Примеряем античную градацию доходов на сегодняшник айтишков.

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

Афинский архонт Солон в 6 веке до н.э. разделил население полиса на 4 категории

  1. Пентакосиомедимны

    1. имеют доход более 500 медимн зерна либо 500 метрет вина или оливкового масла

    2. могут избираться архонтами и казначеями

    3. владеют обширными землями и садами

    4. как правило, обладают своими торговыми кораблями

    5. Поэтому в случае войны должны были за свой счет снарядить боевой корабль

  2. Гиппеи

    1. имеют доход свыше 300-500 медимн зерна

    2. имеют достаточно земли чтобы прокормить коня, либо достаточный для этого доход

    3. Поэтому служат в коннице

  3. Зевгиты

    1. имеют доход свыше 200-300 медимн зерна

    2. дохода достаточно для содержания нормального дома

    3. крепкий средний класс - основа греческих полисов

    4. дохода достаточно для покупки оружия и доспехов

    5. Поэтому служат гоплитами - тяжелая пехота

  4. Феты

    1. имеют доход менее 200 медимн зерна

    2. бедные крестьяне или рабочая беднота

    3. едва сводят концы с концами

    4. освобождены от любых налогов, так это для них непосильное бремя

    5. могут участвовать в работе народного собрания и суда присяжных

    6. Поэтому во время войны служат легко вооруженными пехотинцами (их значение в бою невелико) или гребцами во флоте.

    7. рабов на галерах у греков не было, на вёслах сидели бедные но свободные люди

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

Следует отметить, что данное разделение было установлено в Афинах в 594/593г до н.э., и в 4 веке до н.э. оно начало терять значение.

Теперь подсчитаем сколько же это в современных деньгах?

1 медимн = 52,53 литра (близко к 1 мешку
1 метрет = 39,46 литра

Насыпная плотность пшеницы - 0,8 кг/л
Плотность оливкового масла - 0,915 кг/л

А значит :
1 медимн пшеницы = 42 кг
1 метрет масла = 36 кг

Стоимость 1 кг пшеницы на современном рынке - 0,21 $ (за последние 5 лет колеблется от 470 до 1100 $ за бушель)
Стоимость 1 кг оливкового масла на современном рынке - 5 $ (последние 5 лет она колеблется от 2700 до 10000 $ за метрическую тонну)

Ну а 1$ пусть будет 100руб

Таким образом:
1 метрет масла = 39,46 x 0,915 x 5 = 180$
1 медимн пшеницы = 52,53 x 0,8 x 0,21 = 8,8$

500 метрет масла (13,8 т) = 90 000$
300 метрет масла (8,3 т) = 54 000$
200 метрет масла (5,5 т) = 36 000$

500 медимн зерна (21 т) = 4 400$
300 медимн зерна (12,6 т) = 2 640$
200 медимн зерна (8,4 т) = 1 760$

Средние зарплаты в ИТ:
Junior — 100к руб = 12 000$ год = 66 метрет масла или 1360 медимн пшеницы
Middle — 200к руб = 24 000$ год = 133 метрет масла или 2720 медимн пшеницы
Senior — 300к руб = 36 000$ год = 199 метрет масла или 4080 медимн пшеницы
"Lead" — 750к руб = 90 000$ год = 499 метрет масла или 10200 медимн пшеницы

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

В «пшеничном» эквиваленте всё выглядит прекрасно.
Но если его отбросить и оставить только «масляный», то можно обнаружить интересное наблюдение: пентакосиомедимном может считаться только специалист с доходом более 90k$ в год, а вот линейные разработчики относятся к городской бедноте, поэтому гребут на галерах.

UPD :

Для справки: годовая норма потребления пшеницы на душу населения — 1 тонна (24 медимны), но эта цифра включает также пропитание домашней птицы и скота.

Люди на планете, в зависимости от региона, съедают от 60 до 200 кг пшеницы в год.

Источники:
Реформы Солона - https://ru.wikipedia.org/wiki/Солон#Реформы_Солона
Пентакосиомедимны - https://ru.wikipedia.org/wiki/Пентакосиомедимны
Очерки рабовладельческого строя - https://alex-rozoff.livejournal.com/737761.html
14 вопросов о древней Греции - https://arzamas.academy/mag/980-greece
Фьючерсы на пшеницу - https://ru.investing.com/commodities/us-wheat
Цены на оливковое масло - https://ycharts.com/indicators/olive_oil_price
Потребление пшеницы в мире - https://worldpopulationreview.com/country-rankings/wheat-consumption-by-country

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии6

Задача об IP-адресах и забывчивых сотрудниках

Задача для всех, кто увлекается темой сетей и логикой.

Условие

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

На еженедельной встрече руководитель рассказал сотрудникам, кто и в какую команду переходит. Но шестеро коллег все забыли: Аркадий, Елисей, Ангелина, Юрий, Яна и Мирон. Они знают только свои новые IP-адреса, записанные на стикерах.

  • 10.41.2.176/29 — Юрий; 

  • 10.10.9.222/29 — Аркадий;

  • 10.10.9.218/29 — Яна;

  • 10.35.87.8/25 — Ангелина;

  • 10.41.2.178/29 — Мирон;

  • 10.10.9.227/29 — Елисей.

Также известно, что в администрировании два человека, один из которых неправильно записал последнюю цифру своего адреса. В эксплуатацию также двое, а в дебаге — девушка.

Задача

Помогите определить, в какие команды попали сотрудники компании.

Делитесь своими ответами в комментариях. А проверить себя можно в Академии Selectel

Теги:
Всего голосов 10: ↑9 и ↓1+9
Комментарии9

Задача о поиске секретной службы

Задача подойдет для специалистов по информационной безопасности и всех, кто интересуется CTF-турнирами.

Условие

Вы давно ищете путь к секретной службе. И вот, наконец, вам удалось перехватить трафик, в котором должен быть ключ к получению ее адреса. Разберите дамп и следуйте верным маршрутом.

Задача

Найдите флаг — строку в формате slcctf{}. 

Чтобы выполнить задание, перейдите на страницу Secret Service и скачайте файл dump.pcap.

Попробуйте решить задачу самостоятельно и делитесь своими идеями в комментариях. А если потребует помощь, ищите ответ в Академии Selectel.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Задача об игре в ветреную погоду

Условие

Добро пожаловать в тир. Здесь игрок, попавший стрелой в центр мишени, может получить награду. Но будьте терпеливы, ведь сегодня ветрено, и стрелу сдувает!

Управлять луком можно с помощью кнопок на сайте или с помощью клавиатуры: кнопками вправо, влево и Enter.

Задача

Перейдите в тир и найдите флаг — строку в формате slcctf{}.

Попробуйте решить задачу самостоятельно и делитесь своими идеями в комментариях. Если трудновато — заглядывайте в Академию Selectel, там найдете пошаговое решение задачи.

Теги:
Всего голосов 11: ↑10 и ↓1+12
Комментарии0

Винтик, Шпунтик и Кубик Рубика

Я давно подозревал, что между задачей про Винтика и Шпунтика и кубиком Рубика есть определенная связь. И вот только сейчас придумал простую аналогию. Представьте, что у нас есть грань размера 3x3 и нам надо покрасить 9 ячеек в три цвета. 3 - в красный, 3 - в желтый, и 3 - в зеленый. Сколько существует раскрасок при которых ни одна строка и ни один столбец не закрашены одним цветом?

Картинка ниже дает примеры возможных и невозможных раскрасок

У задачки есть три уровня сложности

  1. Написать код, который считает число возможных раскрасок.

  2. Посчитать то же самое число аналитически (то есть "на бумажке"🧐)

  3. Очевидно, что задача обладает некоторым набором симметрий. Иными словами перестановка строк (эта группа изоморфна S3) переводит решение в решение. То же самое с перестановкой столбцов (тоже S3). Также "перекрашивание" (красные в желтые, желтые в зеленые и тп) дает еще одно S3. Ну и наконец транспонирование матрицы или поворот на 900 (2700) также переводит решение в решение. Вопрос "со звездочкой" - сколько существует орбит решений относительно действия этой группы?

    Маленькая подсказка - можно воспользоваться теоремой Редфилда-Пойа. Но окончательного ответа я с ее помощью получить не смог...😒

Теги:
Всего голосов 7: ↑7 и ↓0+12
Комментарии0

А вы уже дошли до секретной локации? 😉

Через три дня подводим итоги розыгрыша в новогоднем боте от Selectel. Успейте поучаствовать и выиграть призы от нас и наших партнеров: Слёрм и Инглекс 🎁

Говорят, что после встречи с персонажем «которого нельзя называть», вы уже не будете прежними — скорее активируйте бота и откройте тайны грядущего 💫

Теги:
Всего голосов 7: ↑7 и ↓0+10
Комментарии0

Задача на зубок: считаем орешки

В магазине полезных перекусов продаются на развес орехи:

  • Арахис — 500 руб/кг,

  • Миндаль — 1000 руб/кг,

  • Кешью — 1200 руб/кг,

  • Грецкий — 800 руб/кг,

  • Фундук — 1100 руб/кг,

  • Фисташки — 1400 руб/кг.

Менеджер проанализировал спрос и предлагает продавать упаковки с миксом орехов в таких вариантах:

  • арахис, миндаль, кешью;

  • миндаль, фундук, фисташки;

  • кешью, фундук, грецкий.

Любая упаковка микса — по 200 грамм. В каждом миксе орехи взяты в пропорции 2:1:1, где первый — это самый дешёвый орех в данной смеси.

Менеджер предлагает установить цену 200 руб за упаковку микса. Какой микс наиболее выгодно продавать по такой цене, а какой — наименее выгодно?

Ответ опубликуем в комментариях! Больше задач найдёте в бесплатном тренажере «Основы математики для цифровых профессий».

Теги:
Всего голосов 3: ↑1 и ↓2-1
Комментарии5

Подарки айтишникам дарит не Дед Мороз?

Тайна раскрыта: ежегодно IT-специалистов поздравляет Тирекс, но на этот раз ему помешали.

Праздник в опасности — без вашей помощи никак не справиться. Помогите динозавру спасти Новый год от проделок Гринча: отправляйтесь в приключение с ботом от Selectel, ищите подарки и участвуйте в розыгрыше призов.

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

  1. активируйте бота с играми от Selectel и наших партнеров: Слёрм и Инглекс;

  2. до 10 января проходите задания, перемещайтесь по карте и получайте баллы за правильные ответы;

  3. участвуйте в розыгрыше уникальных призов.

До 15 января среди всех, кто наберет 12 баллов и выше, рандомайзер выберет 15 победителей.

Правила розыгрыша оставили по ссылке.

Теги:
Всего голосов 6: ↑6 и ↓0+9
Комментарии0

Ближайшие события

Новогодняя задача: помогите Тирексу поставить и нарядить елочку

Условие

Сисадмин Тирекс засиделся допоздна и не успел не то что нарядить елку, но даже купить ее! У него нет главного символа праздника, но есть лапки, компьютер, IDE, технический склад ума и знание Python.

Задача

Помоги Тирексу вывести в консоли наряженную елку на любимом языке программирования. Педантичный Тирекс предъявляет следующие требования:

  • на вход программа получает два числа: rows отвечает за высоту елки в строчках (не менее трех), freq — за частоту появления украшений.

  • ветки елки — символ *.

  • игрушки — символы о, О, @ и 0.

  • елка имеет ствол из трех символов | и стоит на полу из символов _.

  • ветви елки расположены «ступенями»: первая состоит из трех строк, каждая следующая ниже — на одну больше.

  • первая строка следующей ниже «ступени» должна иметь на два символа меньше, чем последняя строка предыдущей.

  • елка должна иметь границы в виде символов /  и  \.

  • между двумя украшениями по горизонтали должна быть минимум одна ветка.

  • украшения не должны висеть на границе елки (они же упадут!).

Бонусная задача

  • вывести снег символом . (точка).

  • раскрасить елку зеленым, фон — синим, игрушки — разными цветами (кроме зеленого и синего), снег — белым.

Попробуйте решить задачу самостоятельно и делитесь своими идеями в комментариях. А вариант ответа Тирекса ищите в Академии Selectel.

Теги:
Всего голосов 11: ↑11 и ↓0+15
Комментарии1

Отправляйтесь в приключение с новогодним ботом от Selectel 🎄

Но есть мандарины и загадывать желание пока рано: Тирекс узнал, что Гринч хочет украсть Новый год. Без вас динозавру не справиться…

Как ему помочь:

  • активируйте Telegram-бота с играми от Selectel и наших партнеров: Слёрм и Инглекс;

  • до 10 января проходите задания, перемещайтесь по карте и получайте баллы за правильные ответы;

  • участвуйте в розыгрыше уникальных призов;

  • заряжайтесь новогодним настроением.

До 15 января среди всех, кто наберет 12 баллов и выше, рандомайзер выберет 15 победителей 💫

Правила розыгрыша оставили по ссылке →

Теги:
Всего голосов 9: ↑9 и ↓0+12
Комментарии1

Пройди тест от команды ИТ-стажировок Росатома и узнай, кто ты: изотопный джун или атомная ИТ-машина!

Пройти квиз можно на страничке: https://atomic‑quiz.ru

Ответьте на 8 вопросов по одной из 5-ти траекторий и узнайте, как вы можете реализовать свой потенциал в Росатоме. Вы можете стать маленьким роботом-стажёром, уверенным джуном, опытным мидлом или, возможно, сеньорной ИТ-машиной.

  1. Разработка. Создавайте новые продукты и совершенствуйте существующие решения.

  2. Аналитика данных. Для тех, кто любит работать с цифрами, оптимизировать процессы и строить стратегии.

  3. Информационная безопасность. Станьте защитником систем, боритесь с киберугрозами.

  4. Техническая поддержка. Помогайте людям решать технические задачи и преодолевать проблемы.

  5. Администрирование проектов. Управляйте проектами от старта до успешного завершения.

Этот тест — не просто способ узнать своего тотемного робота, но и возможность попасть на стажировку. ИТ-стажировки Росатома — шанс начать карьеру ещё в университете. Мы предлагаем:

  • участие в инновационных проектах с экспертами отрасли;

  • гибкий график для совмещения работы и учёбы;

  • официальное трудоустройство для студентов из любой точки России.

Даже с минимальным опытом в ИТ у вас есть возможность пройти предстажировку и проявить себя.

Узнать больше о своих возможностях можно на наших ресурсах:

Узнать больше и найти вакансию: https://edu.rosatom.ru/. Также можно написать нам на почту: career@greenatom.ru и подписаться на сообщества:

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Сможете попасть на закрытую вечеринку для специалистов по ИБ?

Попробуйте решить простую задачу с CTF-турнира. Найдите флаг — приглашение на вечеринку.

CTF (Сapture the Flag) — это онлайн-соревнования, на которых участникам нужно первым захватить «флаг».

Условие

На сайте для специалистов по информационной безопасности скоро начнется вечеринка Cyberparty. Но чтобы на нее попасть, требуется достать приглашение — строку в виде slcctf{}.

Не опоздайте, пунш-масла на всех не хватит!

Задача

Найдите флаг — строку в формате slcctf{}.

Если будет сложно, заглядывайте в Академию Selectel — показываем там пошаговое решение задачи.

Теги:
Всего голосов 13: ↑13 и ↓0+17
Комментарии0

Задача о прогулках по улицам

Макс приехал в Санкт-Петербург и гуляет по Васильевскому острову. Большая часть острова — это сетка из трёх параллельных проспектов и перпендикулярных им линий. Макс хочет дойти от причалов (точка А) до дома друга (точка В), не проходя по одной и той же улице дважды и не разворачиваясь назад.

Ему нужно пройти шесть кварталов вперёд и два вправо. Можно сначала повернуть, потом идти вперёд. Можно сначала пройти вперёд, а потом уже поворачивать. А можно идти вперёд, потом повернуть, потом снова идти вперёд… в общем, вариантов много! Но сколько именно?

Посчитайте количество способов добраться из точки А в точку B. Делитесь способом решения и результатом.

Теги:
Рейтинг0
Комментарии11

Отмечаем Академично! Проходите квест по блогу Selectel и получайте подарки 😎

Решили поздравить вас с днем рождения Академии Selectel уже полюбившимся форматом — конкурсом с призами 🎉

Прогуляйтесь по страницам нашего медиа, узнайте о нем много нового и проверьте свою наблюдательность.

Что нужно сделать:

🔹 поочередно найти подсказки и с их помощью пройти все этапы квеста,

🔹 решить финальную загадку,

🔹 отправить правильный ответ в @SelectelFeedbackBot.

Пятерым самым быстрым сыщикам вручим призы. Еще пять подарков отправятся случайно выбранным подписчикам, которые дали правильные ответы. Результаты конкурса объявим 12 декабря — не пропустите!

Включайте внутренних Шерлоков и приступайте к поискам подсказок! 🔎

Теги:
Всего голосов 13: ↑12 и ↓1+14
Комментарии0

Попробуйте найти минимальное количество DDoS-атак, которое нужно выполнить, чтобы найти предел устойчивости сервера.

Условие

Инженер отдела информационной безопасности Иван разработал новую систему защиты от DDoS-атак. Ему выдали два сервера для тестов. На каждый из них Иван может отправить одновременно от 1 000 до 100 000 запросов (их количество всегда кратно тысяче). Если их окажется слишком много, сервер выйдет из строя и его больше нельзя будет использовать для тестов. Если сервер выдержит, эксперимент можно будет продолжить.

Задача

Какое минимальное количество DDoS-атак необходимо, чтобы гарантированно определить порог уязвимости системы защиты?

Попробуйте решить задачу самостоятельно в комментариях, а ответ ищите в Академии.

Теги:
Всего голосов 6: ↑6 и ↓0+8
Комментарии1

Вклад авторов