Добро пожаловать на новую статью по решению алгоритмических задач, в которой я собрал для вас список новых задач из разных источников разной сложности, чтобы каждый смог попробовать в себя в этом увлекательном деле!
Цель статьи заключается в тренировке практик по применению различных алгоритмов, в поддержании навыка "Писать код" в тонусе ну и, само собой, немного поразвлечься!
Что было раньше:
В предыдущей части (нажмите на строку) мы решили:
- Find the Integral (Найди интеграл) (Нажмите на строку)
- Sum of a Beach (Сумма пляжа) (Нажмите на строку)
- Triangle Line Task: Fizz Buzz (Задача с треугольной линией: Шипение и жужжание) (Нажмите на строку)
- Simple Fun #216: Count Rectangles (Простая забава №216: Посчитай прямоугольники) (Нажмите на строку)
- Simple maze (Простой лабиринт) (Нажмите на строку)
- Crash Override (Аварийное переопределение) (Нажмите на строку)
В этой части вас ждут еще более интересные алгоритмические задачи. Давайте приступим!
Решение новых задач:
Пояснение сложности задач у разных платформ:
Codewars
8 kyu - Самая простая задача
7 kyu - ...
6 kyu - ...
5 kyu - ...
4 kyu - ...
3 kyu - ...
2 kyu - ...
1 kyu - Самая сложная задач
Задача 1
Платформа: CodeWars
Название задачи: Smallest unused ID (Наименьший неиспользуемый идентификатор)
Ссылка на задачу: https://www.codewars.com/kata/55eea63119278d571d00006a (Нажмите на строку)
Сложность: 8 (8 / 8) kyu
Уже решили (На момент написания статьи): 5,893 из 16,129
Тэги: Фундаментальные, Алгоритмы
Оригинальное описание задачи:
Hey awesome programmer!
You've got much data to manage and of course you use zero-based and non-negative ID's to make each data item unique!
Therefore you need a method, which returns the smallest unused ID for your next new data item...
Note: The given array of used IDs may be unsorted. For test reasons there may be duplicate IDs, but you don't have to find or remove them!
Go on and code some pure awesomeness!
Пояснение задачи:
Задача проста: нам дали набор уникальных номеров (идентификаторов), которые уже заняты.
Нужно найти самый маленький номер, который ещё не использован, чтобы присвоить его новому элементу данных. Нумерация начинается с нуля, и номера могут идти в любом порядке, включая повторения.
Задача 2
Платформа: CodeWars
Название задачи: No Loops 2 - You only need one (Без циклов 2 - Вам нужен лишь один)
Ссылка на задачу: https://www.codewars.com/kata/57cc40b2f8392dbf2a0003ce (Нажмите на строку)
Сложность: 8 (8 / 8) kyu
Уже решили (На момент написания статьи): 7,067 из 17,404
Тэги: Фундаментальные, Массивы
Оригинальное описание задачи:
*** No Loops Allowed ***
You will be given an array a
and a value x
. All you need to do is check whether the provided array contains the value, without using a loop.
Array can contain numbers or strings. x
can be either. Return true
if the array contains the value, false
if not. With strings you will need to account for case.
Looking for more, loop-restrained fun? Check out the other kata in the series:
Пояснение задачи:
Задача заключается в том чтобы проверить есть ли определенное значение в списке, но нельзя использовать циклы. Список может содержать числа или строки, и важно учитывать регистр букв, если мы ищем строку. Если значение найдено, возвращаем true, иначе — false.
Задача 3
Платформа: CodeWars
Название задачи: String Merge! (Слияние строк!)
Ссылка на задачу: https://www.codewars.com/kata/597bb84522bc93b71e00007e (Нажмите на строку)
Сложность: 7 (7 / 8) kyu
Уже решили (На момент написания статьи): 2,596 из 6,498
Тэги: Строки, Фундаментальные
Оригинальное описание задачи:
Given two words and a letter, return a single word that's a combination of both words, merged at the point where the given letter first appears in each word. The returned word should have the beginning of the first word and the ending of the second, with the dividing letter in the middle. You can assume both words will contain the dividing letter.
Examples
("hello", "world", "l") ==> "held"
("coding", "anywhere", "n") ==> "codinywhere"
("jason", "samson", "s") ==> "jasamson"
("wonderful", "people", "e") ==> "wondeople"
Пояснение задачи:
Задача состоит в том, чтобы объединить два слова в одно по определенной букве.
Эта буква должна быть общей для обоих слов.
В результате получаем новое слово, которое начинается с начала первого слова и заканчивается концом второго, причем разделение происходит там, где впервые встречается общая буква.
Примеры:
Если даны слова "hello" и "world", и буква "l", то результатом будет "held", потому что мы берем начало от "hello" ("hel") и конец от "world" ("d").
Для слов "coding" и "anywhere" с буквой "n" получится "codinywhere": начинаем с "codi" и заканчиваем на "ywhere".
Для "jason" и "samson" с буквой "s" получается "jasamson": используем "ja" от "jason" и присоединяем "amson" от "samson".
Можно предположить, что оба слова обязательно содержат указанную букву.
Задача 4
Платформа: CodeWars
Название задачи: Number Decoding (Расшифровка номера)
Ссылка на задачу: https://www.codewars.com/kata/5940ec284aafb87ef3000028 (Нажмите на строку)
Сложность: 6 (6 / 8) kyu
Уже решили (На момент написания статьи): 217 из 422
Тэги: Фундаментальные
Оригинальное описание задачи:
Welcome to my (amazing) kata!
You are given a gigantic number to decode. Each number is a code that alternates in a pattern between encoded text and a smaller, encoded number. The pattern's length varies with every test, but the alternation between encoded text and an encoded number will always be there. Following this rule, each number tested begins with encoded text and ends with an encoded number.
How the encoding works
Now, we should probably review how the string of numbers is formed - considering you have to unform it. So, first, some text is taken, and encoded. The system of encoding is taking each letter's position in the alphabet and adding 100 to it. For example, m
in the real text would be 113
in the code-number.
After the text, there is a binary number. You should convert this number to a normal, base 10 decimal (all of them can be converted into whole, non-negative numbers).
Separating encoded text and encoded numbers, there is a 98
. Because the numbers are in binary, the only digits they use are '0' and '1', and each letter of the alphabet, encoded, is between 101-127, all instances of 98
are to indicate a separation between encoded text and encoded numbers. There may also be a 98
at the very end of the number.
When you return your final answer, the text and numbers should always be separated by a comma (,
)
Example
decode(103115104105123101118119981001098113113113981000) = "codewars, 18, mmm, 8"
The part of the code until the first 98
can be decoded to "codewars"
. 10010
is binary for 18
. 113113113
translates to "mmm"
. And 1000
is binary for 8
.
Here is a visualisation of the example:
103 115 104 105 123 101 118 119 98 10010 98 113 113 113 98 1000
c o d e w a r s , 18 , m m m , 8
Good luck!
Пояснение задачи:
Задача заключается в расшифровке закодированной строки, которая представляет собой смесь текста и чисел.
Кодировка происходит следующим образом: Буквы преобразуются в числа путем добавления 100 к номеру буквы в алфавите.
Например, буква "m" становится числом 113 (13-я буква плюс 100).
Числа записываются в двоичной форме, начиная с цифры 100 и заканчивая 1000.
Между текстом и числами стоит разделитель 98.
Таким образом, когда видишь последовательность чисел, начинающихся с 100 и заканчивающихся 1000, это означает двоичное представление числа.
После разделителя 98 идет следующий блок данных.
Пример:
Кодированная строка: 103115104105123101118119981001098113113113981000
Расшифрованный текст: "codewars, 18, mmm, 8"
Процесс расшифровки выглядит так:
Первые восемь чисел (103115104105123101118119) расшифровываются как "codewars".
Следующее число после разделителя 98 — это двоичная запись числа 18 (10010).
Далее снова идет текст "mmm" (113113113), и после следующего разделителя — двоичный эквивалент числа 8 (1000).
Итоговая структура результата: текстовые части и числа разделены запятыми.
Задача — декодировать такую строку и вернуть правильный результат.
Задача 5
Платформа: CodeWars
Название задачи: Maximum subarray sum (Максимальная сумма подмассивов)
Ссылка на задачу: https://www.codewars.com/kata/54521e9ec8e60bc4de000d6c (Нажмите на строку)
Сложность: 5 (5 / 8) kyu
Уже решили (На момент написания статьи): 30,599 из 81,657
Тэги: Алгоритмы, Списки, Динамическое программирование, Фундаментальные, Производительность
Оригинальное описание задачи:
The maximum sum subarray problem consists in finding the maximum sum of a contiguous subsequence in an array or list of integers:
max_sequence([-2, 1, -3, 4, -1, 2, 1, -5, 4])
# should be 6: [4, -1, 2, 1]
Easy case is when the list is made up of only positive numbers and the maximum sum is the sum of the whole array. If the list is made up of only negative numbers, return 0 instead.
Empty list is considered to have zero greatest sum. Note that the empty list or array is also a valid sublist/subarray.
Пояснение задачи:
Задача поиска максимальной суммы подпоследовательности заключается в нахождении такой непрерывной последовательности чисел в массиве, сумма которой максимальна. Рассмотрим пример: max_sequence([-2, 1, -3, 4, -1, 2, 1, -5, 4]) Максимальная сумма достигается на участке [4, -1, 2, 1], что равно 6. Некоторые важные моменты: Если массив состоит только из положительных чисел, максимальная сумма равна сумме всего массива. Если массив состоит только из отрицательных чисел, возвращается 0. Пустой массив считается имеющим максимальную сумму 0. Основная цель — найти самую большую возможную сумму любых подряд идущих чисел в массиве.
Задача 6
Платформа: CodeWars
Название задачи: Circular Limited Sums (Круговые ограниченные суммы)
Ссылка на задачу: https://www.codewars.com/kata/59951f21d65a27e95d00004f (Нажмите на строку)
Сложность: 4 (4 / 8) kyu
Уже решили (На момент написания статьи): 97 из 100
Тэги: Алгоритмы, Математика, Динамическое программирование
Оригинальное описание задачи:
Problem Description
Let's imagine a function F(n)
, which is defined over the integers in the range of 1 <= n <= max_n
, and 0 <= F(n) <= max_fn
for every n
.
There are (1 + max_fn) ** max_n
possible definitions of F
in total.
Out of those definitions, how many F
s satisfy the following equations? Since your answer will be very large, please give your answer modulo 12345787.
F(n) + F(n + 1) <= max_fn
for 1 <= n < max_n
F(max_n) + F(1) <= max_fn
Constraints
1 <= max_n <= 100
1 <= max_fn <= 5
The inputs will be always valid integers.
Examples
# F(1) + F(1) <= 1, F(1) = 0
circular_limited_sums(1, 1) == 1
# F = (0, 0), (0, 1), (1, 0)
circular_limited_sums(2, 1) == 3
# F = (0, 0, 0), (0, 0, 1), (0, 1, 0), (1, 0, 0)
circular_limited_sums(3, 1) == 4
# F = (0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 1, 0), (0, 1, 0, 0),
# (0, 1, 0, 1), (1, 0, 0, 0), (1, 0, 1, 0)
circular_limited_sums(4, 1) == 7
# F = (0), (1)
circular_limited_sums(1, 2) == 2
# F = (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (2, 0)
circular_limited_sums(2, 2) == 6
# F = (0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 1, 0), (0, 1, 1),
# (0, 2, 0), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1), (2, 0, 0)
circular_limited_sums(3, 2) == 11
circular_limited_sums(4, 2) == 26
Acknowledgement
-
This problem was designed as a hybrid of Project Euler #209: Circular Logic and Project Euler #164: Numbers for which no three consecutive digits have a sum greater than a given value.
-
An even more challenging version of this problem: Insane Circular Limited Sums
-
If you enjoyed this Kata, please also have a look at my other Katas!
Пояснение задачи:
Эта задача связана с поиском определений функции F(n), которая определена для целых чисел в диапазоне от 1 до max_n и принимает значения от 0 до max_fn.
Условия требуют выполнения ограничений на сумму значений функции для соседних аргументов.
Задача сводится к подсчету всех допустимых функций, удовлетворяющих этим ограничениям.
Вот упрощенная версия задачи:
Есть функция F(n), которая принимает значения от 1 до max_n.
Каждое значение функции F(n) ограничено значением max_fn.
Необходимо определить, сколько различных функций F(n) существуют, удовлетворяющих условию, что сумма значений функции для соседних аргументов не превышает max_fn
Новое в конфигурации Algo1C:

https://github.com/SalavatovNabiulla/Algo1C
- 0.5 : Добавлена возможность выбирать контекст исполнения кода, например: НаСервере или НаКлиенте
- 0.4 : Исправлена ошибка при выводе содержимого исключения
- 0.3 : Добавлена возможность сохранять и загружать задачи; Внесены небольшие изменения в интерфейс
- 0.2 : Исправлена ошибка при выводе результата (Отдельная благодарность SAShikutkin)
Заключение:
Codewars
8 kyu - Самая простая задача
7 kyu - ...
6 kyu - ...
5 kyu - ...
4 kyu - ...
3 kyu - ...
2 kyu - ...
1 kyu - Самая сложная задач
Платформа: CodeWars
Название задачи: Smallest unused ID (Наименьший неиспользуемый идентификатор)
Ссылка на задачу: https://www.codewars.com/kata/55eea63119278d571d00006a (Нажмите на строку)
Сложность: 8 (8 / 8) kyu
Уже решили (На момент написания статьи): 5,893 из 16,129
Тэги: Фундаментальные, Алгоритмы
Оригинальное описание задачи:
Hey awesome programmer!
You've got much data to manage and of course you use zero-based and non-negative ID's to make each data item unique!
Therefore you need a method, which returns the smallest unused ID for your next new data item...
Note: The given array of used IDs may be unsorted. For test reasons there may be duplicate IDs, but you don't have to find or remove them!
Go on and code some pure awesomeness!
Пояснение задачи:
Задача проста: нам дали набор уникальных номеров (идентификаторов), которые уже заняты.
Нужно найти самый маленький номер, который ещё не использован, чтобы присвоить его новому элементу данных. Нумерация начинается с нуля, и номера могут идти в любом порядке, включая повторения.
Платформа: CodeWars
Название задачи: No Loops 2 - You only need one (Без циклов 2 - Вам нужен лишь один)
Ссылка на задачу: https://www.codewars.com/kata/57cc40b2f8392dbf2a0003ce (Нажмите на строку)
Сложность: 8 (8 / 8) kyu
Уже решили (На момент написания статьи): 7,067 из 17,404
Тэги: Фундаментальные, Массивы
Оригинальное описание задачи:
*** No Loops Allowed ***
You will be given an array
a
and a valuex
. All you need to do is check whether the provided array contains the value, without using a loop.Array can contain numbers or strings.
x
can be either. Returntrue
if the array contains the value,false
if not. With strings you will need to account for case.Looking for more, loop-restrained fun? Check out the other kata in the series:
Пояснение задачи:
Задача заключается в том чтобы проверить есть ли определенное значение в списке, но нельзя использовать циклы. Список может содержать числа или строки, и важно учитывать регистр букв, если мы ищем строку. Если значение найдено, возвращаем true, иначе — false.
Платформа: CodeWars
Название задачи: String Merge! (Слияние строк!)
Ссылка на задачу: https://www.codewars.com/kata/597bb84522bc93b71e00007e (Нажмите на строку)
Сложность: 7 (7 / 8) kyu
Уже решили (На момент написания статьи): 2,596 из 6,498
Тэги: Строки, Фундаментальные
Оригинальное описание задачи:
Given two words and a letter, return a single word that's a combination of both words, merged at the point where the given letter first appears in each word. The returned word should have the beginning of the first word and the ending of the second, with the dividing letter in the middle. You can assume both words will contain the dividing letter.
Examples
("hello", "world", "l") ==> "held" ("coding", "anywhere", "n") ==> "codinywhere" ("jason", "samson", "s") ==> "jasamson" ("wonderful", "people", "e") ==> "wondeople"
Пояснение задачи:
Задача состоит в том, чтобы объединить два слова в одно по определенной букве.
Эта буква должна быть общей для обоих слов.
В результате получаем новое слово, которое начинается с начала первого слова и заканчивается концом второго, причем разделение происходит там, где впервые встречается общая буква.
Примеры:
Если даны слова "hello" и "world", и буква "l", то результатом будет "held", потому что мы берем начало от "hello" ("hel") и конец от "world" ("d").
Для слов "coding" и "anywhere" с буквой "n" получится "codinywhere": начинаем с "codi" и заканчиваем на "ywhere".
Для "jason" и "samson" с буквой "s" получается "jasamson": используем "ja" от "jason" и присоединяем "amson" от "samson".
Можно предположить, что оба слова обязательно содержат указанную букву.
Платформа: CodeWars
Название задачи: Number Decoding (Расшифровка номера)
Ссылка на задачу: https://www.codewars.com/kata/5940ec284aafb87ef3000028 (Нажмите на строку)
Сложность: 6 (6 / 8) kyu
Уже решили (На момент написания статьи): 217 из 422
Тэги: Фундаментальные
Оригинальное описание задачи:
Welcome to my (amazing) kata!
You are given a gigantic number to decode. Each number is a code that alternates in a pattern between encoded text and a smaller, encoded number. The pattern's length varies with every test, but the alternation between encoded text and an encoded number will always be there. Following this rule, each number tested begins with encoded text and ends with an encoded number.
How the encoding works
Now, we should probably review how the string of numbers is formed - considering you have to unform it. So, first, some text is taken, and encoded. The system of encoding is taking each letter's position in the alphabet and adding 100 to it. For example,
m
in the real text would be113
in the code-number.After the text, there is a binary number. You should convert this number to a normal, base 10 decimal (all of them can be converted into whole, non-negative numbers).
Separating encoded text and encoded numbers, there is a
98
. Because the numbers are in binary, the only digits they use are '0' and '1', and each letter of the alphabet, encoded, is between 101-127, all instances of98
are to indicate a separation between encoded text and encoded numbers. There may also be a98
at the very end of the number.When you return your final answer, the text and numbers should always be separated by a comma (
,
)Example
decode(103115104105123101118119981001098113113113981000) = "codewars, 18, mmm, 8"
The part of the code until the first
98
can be decoded to"codewars"
.10010
is binary for18
.113113113
translates to"mmm"
. And1000
is binary for8
.Here is a visualisation of the example:
103 115 104 105 123 101 118 119 98 10010 98 113 113 113 98 1000 c o d e w a r s , 18 , m m m , 8
Good luck!
Пояснение задачи:
Задача заключается в расшифровке закодированной строки, которая представляет собой смесь текста и чисел.
Кодировка происходит следующим образом: Буквы преобразуются в числа путем добавления 100 к номеру буквы в алфавите.
Например, буква "m" становится числом 113 (13-я буква плюс 100).
Числа записываются в двоичной форме, начиная с цифры 100 и заканчивая 1000.
Между текстом и числами стоит разделитель 98.
Таким образом, когда видишь последовательность чисел, начинающихся с 100 и заканчивающихся 1000, это означает двоичное представление числа.
После разделителя 98 идет следующий блок данных.
Пример:
Кодированная строка: 103115104105123101118119981001098113113113981000
Расшифрованный текст: "codewars, 18, mmm, 8"
Процесс расшифровки выглядит так:
Первые восемь чисел (103115104105123101118119) расшифровываются как "codewars".
Следующее число после разделителя 98 — это двоичная запись числа 18 (10010).
Далее снова идет текст "mmm" (113113113), и после следующего разделителя — двоичный эквивалент числа 8 (1000).
Итоговая структура результата: текстовые части и числа разделены запятыми.
Задача — декодировать такую строку и вернуть правильный результат.
Платформа: CodeWars
Название задачи: Maximum subarray sum (Максимальная сумма подмассивов)
Ссылка на задачу: https://www.codewars.com/kata/54521e9ec8e60bc4de000d6c (Нажмите на строку)
Сложность: 5 (5 / 8) kyu
Уже решили (На момент написания статьи): 30,599 из 81,657
Тэги: Алгоритмы, Списки, Динамическое программирование, Фундаментальные, Производительность
Оригинальное описание задачи:
The maximum sum subarray problem consists in finding the maximum sum of a contiguous subsequence in an array or list of integers:
max_sequence([-2, 1, -3, 4, -1, 2, 1, -5, 4]) # should be 6: [4, -1, 2, 1]
Easy case is when the list is made up of only positive numbers and the maximum sum is the sum of the whole array. If the list is made up of only negative numbers, return 0 instead.
Empty list is considered to have zero greatest sum. Note that the empty list or array is also a valid sublist/subarray.
Пояснение задачи:
Задача поиска максимальной суммы подпоследовательности заключается в нахождении такой непрерывной последовательности чисел в массиве, сумма которой максимальна. Рассмотрим пример: max_sequence([-2, 1, -3, 4, -1, 2, 1, -5, 4]) Максимальная сумма достигается на участке [4, -1, 2, 1], что равно 6. Некоторые важные моменты: Если массив состоит только из положительных чисел, максимальная сумма равна сумме всего массива. Если массив состоит только из отрицательных чисел, возвращается 0. Пустой массив считается имеющим максимальную сумму 0. Основная цель — найти самую большую возможную сумму любых подряд идущих чисел в массиве.
Платформа: CodeWars
Название задачи: Circular Limited Sums (Круговые ограниченные суммы)
Ссылка на задачу: https://www.codewars.com/kata/59951f21d65a27e95d00004f (Нажмите на строку)
Сложность: 4 (4 / 8) kyu
Уже решили (На момент написания статьи): 97 из 100
Тэги: Алгоритмы, Математика, Динамическое программирование
Оригинальное описание задачи:
Problem Description
Let's imagine a function
F(n)
, which is defined over the integers in the range of1 <= n <= max_n
, and0 <= F(n) <= max_fn
for everyn
.There are
(1 + max_fn) ** max_n
possible definitions ofF
in total.Out of those definitions, how many
F
s satisfy the following equations? Since your answer will be very large, please give your answer modulo 12345787.
F(n) + F(n + 1) <= max_fn
for1 <= n < max_n
F(max_n) + F(1) <= max_fn
Constraints
1 <= max_n <= 100
1 <= max_fn <= 5
The inputs will be always valid integers.
Examples
# F(1) + F(1) <= 1, F(1) = 0 circular_limited_sums(1, 1) == 1 # F = (0, 0), (0, 1), (1, 0) circular_limited_sums(2, 1) == 3 # F = (0, 0, 0), (0, 0, 1), (0, 1, 0), (1, 0, 0) circular_limited_sums(3, 1) == 4 # F = (0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 1, 0), (0, 1, 0, 0), # (0, 1, 0, 1), (1, 0, 0, 0), (1, 0, 1, 0) circular_limited_sums(4, 1) == 7 # F = (0), (1) circular_limited_sums(1, 2) == 2 # F = (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (2, 0) circular_limited_sums(2, 2) == 6 # F = (0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 1, 0), (0, 1, 1), # (0, 2, 0), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1), (2, 0, 0) circular_limited_sums(3, 2) == 11 circular_limited_sums(4, 2) == 26
Acknowledgement
This problem was designed as a hybrid of Project Euler #209: Circular Logic and Project Euler #164: Numbers for which no three consecutive digits have a sum greater than a given value.
An even more challenging version of this problem: Insane Circular Limited Sums
If you enjoyed this Kata, please also have a look at my other Katas!
Пояснение задачи:
Эта задача связана с поиском определений функции F(n), которая определена для целых чисел в диапазоне от 1 до max_n и принимает значения от 0 до max_fn.
Условия требуют выполнения ограничений на сумму значений функции для соседних аргументов.
Задача сводится к подсчету всех допустимых функций, удовлетворяющих этим ограничениям.
Вот упрощенная версия задачи:
Есть функция F(n), которая принимает значения от 1 до max_n.
Каждое значение функции F(n) ограничено значением max_fn.
Необходимо определить, сколько различных функций F(n) существуют, удовлетворяющих условию, что сумма значений функции для соседних аргументов не превышает max_fn
https://github.com/SalavatovNabiulla/Algo1C
- 0.5 : Добавлена возможность выбирать контекст исполнения кода, например: НаСервере или НаКлиенте
- 0.4 : Исправлена ошибка при выводе содержимого исключения
- 0.3 : Добавлена возможность сохранять и загружать задачи; Внесены небольшие изменения в интерфейс
- 0.2 : Исправлена ошибка при выводе результата (Отдельная благодарность SAShikutkin)
Ну что ж, пока на этом всё, надеюсь, статья была увлекательной для вас, благодарю за внимание.
Подключайтесь к решению алгоритмических задач вместе со мной, делитесь вашим мнением и решениями в комментариях, сохраняя при этом позитивный настрой!
Увидимся в новой статье!