JustCaptain kod-buduschego

добавил допольнительные задачи

anc · 3 недели назад b2eaa8da9b02e1bfb94cf3e9a886e8d0158a4f36
172 файла
  • .gitignore +21 −2
    Показать разницуСкрыть разницу
    1 −./vscode
    2 −.vscode
    1 +# Редакторы и ОС
    2 +.vscode/
    3 +.idea/
    4 +.DS_Store
    5 +Thumbs.db
    6 +
    7 +# Python
    8 +__pycache__/
    9 +*.pyc
    10 +.venv/
    11 +venv/
    12 +
    13 +# C++: скомпилированные программы и отладочные символы
    14 +*.dSYM/
    15 +*.exe
    16 +*.out
    17 +*.o
    18 +# бинарники без расширения (clang++ file.cpp -o file)
    19 +C++/**/*
    20 +!C++/**/
    21 +!C++/**/*.*
  • Показать разницуСкрыть разницу
    1 +# 01. Арбуз
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 4A — Watermelon](https://codeforces.com/problemset/problem/4/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | математика, условия |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Арбуз весит `w` килограммов. Можно ли разрезать его на две части так, чтобы вес каждой был **чётным положительным** числом? Выведите `YES` или `NO`.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одно целое число `w` (`1 ≤ w ≤ 100`) — вес арбуза.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`YES`, если арбуз можно разделить на две части чётного веса, иначе `NO`.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +8
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +YES
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 02. Театральная площадь
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 1A — Theatre Square](https://codeforces.com/problemset/problem/1/A) |
    7 +| 📊 **Сложность** | 1000 |
    8 +| 🏷️ **Темы** | математика, округление вверх |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Площадь размером `n × m` нужно покрыть квадратными плитами `a × a`. Плиты можно выпускать за край, но нельзя разбивать. Найдите минимальное число плит.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В одной строке три целых числа `n`, `m`, `a` (`1 ≤ n, m, a ≤ 10⁹`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — минимальное количество плит.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +6 6 4
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +4
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 03. Домино
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 50A — Domino piling](https://codeforces.com/problemset/problem/50/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | математика |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Доска `M × N` клеток. Сколько максимум доминошек `2 × 1` можно на неё положить без наложений?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В одной строке два целых числа `M` и `N` (`1 ≤ M ≤ N ≤ 16`) — размеры доски.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — максимальное количество доминошек.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +2 4
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +4
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 04. Слишком длинные слова
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 71A — Way Too Long Words](https://codeforces.com/problemset/problem/71/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Слова длиннее 10 символов нужно сокращать: первая буква + количество букв между первой и последней + последняя буква (`localization` → `l10n`). Остальные слова выводятся как есть.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 100`). Далее `n` строк, в каждой — слово из строчных латинских букв длиной от 1 до 100.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`n` строк — каждое слово после замены (или без изменений, если его длина ≤ 10).
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +4
    30 +word
    31 +localization
    32 +internationalization
    33 +pneumonoultramicroscopicsilicovolcanoconiosis
    34 +```
    35 +
    36 +**Вывод:**
    37 +
    38 +```text
    39 +word
    40 +l10n
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 05. Команда
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 231A — Team](https://codeforces.com/problemset/problem/231/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | циклы, условия |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Трое друзей решают `n` задач. Для каждой задачи известно, кто из них уверен в решении (0/1). Задачу пишут, если уверены хотя бы двое. Сколько задач напишут?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 1000`) — количество задач. Далее `n` строк по три числа 0 или 1: уверен ли Петя, Вася и Тоня в решении задачи.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — сколько задач напишут друзья.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +3
    30 +1 1 0
    31 +1 1 1
    32 +1 0 0
    33 +```
    34 +
    35 +**Вывод:**
    36 +
    37 +```text
    38 +2
    39 +```
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 06. Следующий раунд
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 158A — Next Round](https://codeforces.com/problemset/problem/158/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | массивы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Известны баллы `n` участников (по невозрастанию). В следующий раунд проходят все, у кого балл **положительный** и не меньше, чем у участника на `k`-м месте. Сколько пройдёт?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке два числа `n` и `k` (`1 ≤ k ≤ n ≤ 50`). Во второй — `n` чисел `a_i` (`0 ≤ a_i ≤ 100`) по невозрастанию: баллы участников по местам.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — сколько участников пройдёт в следующий раунд.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +8 5
    30 +10 9 8 7 7 7 5 5
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +6
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 07. Bit++
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 282A — Bit++](https://codeforces.com/problemset/problem/282/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки, моделирование |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Переменная `x = 0`. Дано `n` операторов вида `++X`, `X++`, `--X`, `X--`. Найдите итоговое значение `x`.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 150`). Далее `n` строк, каждая — один из операторов `++X`, `X++`, `--X`, `X--`.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — итоговое значение `x`.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +1
    30 +++X
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +1
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 08. Петя и строки
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 112A — Petya and Strings](https://codeforces.com/problemset/problem/112/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Сравните две строки одинаковой длины лексикографически **без учёта регистра**. Выведите `-1`, `0` или `1`.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Две строки одинаковой длины (от 1 до 100) из заглавных и строчных латинских букв.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`-1`, если первая строка меньше второй; `1`, если больше; `0`, если строки равны (регистр не учитывается).
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +aaaa
    30 +aaaA
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +0
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 09. Красивая матрица
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 263A — Beautiful Matrix](https://codeforces.com/problemset/problem/263/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | двумерные массивы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +В матрице `5 × 5` ровно одна единица, остальные — нули. За ход можно поменять местами две соседние строки или два соседних столбца. За сколько ходов единица попадёт в центр?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Пять строк по пять чисел — матрица из 24 нулей и одной единицы.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — минимальное количество ходов.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +0 0 0 0 0
    30 +0 0 0 0 1
    31 +0 0 0 0 0
    32 +0 0 0 0 0
    33 +0 0 0 0 0
    34 +```
    35 +
    36 +**Вывод:**
    37 +
    38 +```text
    39 +3
    40 +```
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 10. Помощь в математике
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 339A — Helpful Maths](https://codeforces.com/problemset/problem/339/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки, сортировка |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Дана сумма вида `3+2+1+1`, где слагаемые — только 1, 2 и 3. Переставьте слагаемые так, чтобы они шли по неубыванию.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одна непустая строка `s` длиной до 100 символов — сумма чисел 1, 2 и 3 через `+`, без пробелов.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Та же сумма, в которой слагаемые идут по неубыванию.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +3+2+1
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +1+2+3
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 11. Заглавная буква
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 281A — Word Capitalization](https://codeforces.com/problemset/problem/281/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Сделайте первую букву слова заглавной, остальные оставьте без изменений.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одно непустое слово из заглавных и строчных латинских букв длиной до 10³.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Слово, у которого первая буква сделана заглавной.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +ApPLe
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +ApPLe
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 12. Мальчик или девочка
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 236A — Boy or Girl](https://codeforces.com/problemset/problem/236/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки, множества |
    9 +
    10 +## 📝 Условие
    11 +
    12 +По никнейму определяют пол: если количество **различных** букв чётное — `CHAT WITH HER!`, иначе — `IGNORE HIM!`.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одна непустая строка из строчных латинских букв длиной до 100 — никнейм.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`CHAT WITH HER!`, если число различных букв чётное, иначе `IGNORE HIM!`.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +wjmzbmr
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +CHAT WITH HER!
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 13. Камни на столе
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 266A — Stones on the Table](https://codeforces.com/problemset/problem/266/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +В ряд лежат камни цветов `R`, `G`, `B`. Какое минимальное число камней нужно убрать, чтобы любые два соседних были разного цвета?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 50`). Во второй — строка из `n` символов `R`, `G`, `B` — цвета камней.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — минимальное количество камней, которые нужно убрать.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +3
    30 +RRG
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +1
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 14. Солдат и бананы
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 546A — Soldier and Bananas](https://codeforces.com/problemset/problem/546/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | математика, циклы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Первый банан стоит `k` долларов, второй — `2k`, `i`-й — `i·k`. У солдата `n` долларов, а купить нужно `w` бананов. Сколько придётся занять?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В одной строке три числа `k`, `n`, `w` (`1 ≤ k, w ≤ 1000`, `0 ≤ n ≤ 10⁹`) — цена первого банана, деньги солдата и сколько бананов он хочет.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — сколько долларов нужно занять (или `0`).
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +3 17 4
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +13
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 15. Слон
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 617A — Elephant](https://codeforces.com/problemset/problem/617/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | математика |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Слон за шаг продвигается на 1–5 позиций вперёд. За какое минимальное число шагов он дойдёт из точки 0 до точки `x`?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одно число `x` (`1 ≤ x ≤ 10⁶`) — координата дома друга.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — минимальное количество шагов.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +5
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +1
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 16. Неправильное вычитание
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 977A — Wrong Subtraction](https://codeforces.com/problemset/problem/977/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | моделирование |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Таня «вычитает единицу» так: если последняя цифра не ноль — уменьшает число на 1, иначе делит на 10. Что получится после `k` таких операций над `n`?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В одной строке два числа `n` и `k` (`2 ≤ n ≤ 10⁹`, `1 ≤ k ≤ 50`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — результат после `k` операций (гарантируется, что он положительный).
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +512 4
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +50
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 17. Слово
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 59A — Word](https://codeforces.com/problemset/problem/59/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Если в слове заглавных букв строго больше, чем строчных, переведите всё слово в верхний регистр, иначе — в нижний.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одно слово `s` из заглавных и строчных латинских букв длиной от 1 до 100.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Исправленное слово.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +HoUse
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +house
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 18. Антон и Даник
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 734A — Anton and Danik](https://codeforces.com/problemset/problem/734/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Строка из букв `A` и `D` — кто выиграл каждую партию. Кто выиграл больше партий? Выведите `Anton`, `Danik` или `Friendship`.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Во второй — строка из `n` букв `A` и `D`.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`Anton`, `Danik` или `Friendship`.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +6
    30 +ADAAAA
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +Anton
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 19. Медвежонок и старший брат
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 791A — Bear and Big Brother](https://codeforces.com/problemset/problem/791/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | циклы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Вес Лимака `a`, вес брата `b` (`a ≤ b`). Каждый год вес Лимака утраивается, а брата — удваивается. Через сколько лет Лимак станет строго тяжелее?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В одной строке два числа `a` и `b` (`1 ≤ a ≤ b ≤ 10`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — через сколько лет Лимак станет строго тяжелее брата.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +4 7
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +2
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 20. Трамвай
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [Codeforces 116A — Tram](https://codeforces.com/problemset/problem/116/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | моделирование |
    9 +
    10 +## 📝 Условие
    11 +
    12 +На каждой остановке из трамвая выходят `a_i` человек, а заходят `b_i`. Какая минимальная вместимость трамвая нужна, чтобы все поместились?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`2 ≤ n ≤ 1000`) — количество остановок. Далее `n` строк по два числа `a_i` и `b_i` (`0 ≤ a_i, b_i ≤ 1000`) — сколько человек вышло и вошло на `i`-й остановке. На первой остановке никто не выходит, на последней все выходят и никто не входит.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — минимальная вместимость трамвая.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +4
    30 +0 3
    31 +2 5
    32 +4 2
    33 +4 0
    34 +```
    35 +
    36 +**Вывод:**
    37 +
    38 +```text
    39 +6
    40 +```
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 21. FizzBuzz
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [LeetCode 412 — Fizz Buzz](https://leetcode.com/problems/fizz-buzz/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | циклы, условия |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Для чисел от 1 до `n` выведите `Fizz`, если число делится на 3, `Buzz` — если на 5, `FizzBuzz` — если на 15, иначе само число.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +Одно число `n` (`1 ≤ n ≤ 10⁴`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`n` строк: для каждого `i` от 1 до `n` — `Fizz`, `Buzz`, `FizzBuzz` или само число.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +3
    34 +```
    35 +
    36 +**Вывод:**
    37 +
    38 +```text
    39 +1
    40 +2
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 22. Число-палиндром
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [LeetCode 9 — Palindrome Number](https://leetcode.com/problems/palindrome-number/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | математика |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Определите, является ли целое число `x` палиндромом (читается одинаково слева направо и справа налево). Отрицательные числа — не палиндромы.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +Одно целое число `x` (`-2³¹ ≤ x ≤ 2³¹ - 1`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`true`, если `x` — палиндром, иначе `false`.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +121
    34 +```
    35 +
    36 +**Вывод:**
    37 +
    38 +```text
    39 +true
    40 +```
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 23. Бегущая сумма
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [LeetCode 1480 — Running Sum of 1d Array](https://leetcode.com/problems/running-sum-of-1d-array/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | массивы, префиксные суммы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Для массива `nums` верните массив, где `i`-й элемент — сумма `nums[0] + … + nums[i]`.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 1000`). Во второй — `n` целых чисел `nums[i]` (`-10⁶ ≤ nums[i] ≤ 10⁶`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`n` чисел через пробел — бегущие суммы.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +4
    34 +1 2 3 4
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +1 3 6 10
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 24. Самый богатый клиент
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [LeetCode 1672 — Richest Customer Wealth](https://leetcode.com/problems/richest-customer-wealth/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | двумерные массивы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +`accounts[i][j]` — деньги `i`-го клиента в `j`-м банке. Найдите максимальное суммарное богатство клиента.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке два числа `m` и `n` (`1 ≤ m, n ≤ 50`) — количество клиентов и банков. Далее `m` строк по `n` чисел (`1 ≤ accounts[i][j] ≤ 100`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — богатство самого богатого клиента.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +2 3
    34 +1 2 3
    35 +3 2 1
    36 +```
    37 +
    38 +**Вывод:**
    39 +
    40 +```text
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 25. Склейка массива
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟢 Intern |
    6 +| 🔗 **Источник** | [LeetCode 1929 — Concatenation of Array](https://leetcode.com/problems/concatenation-of-array/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | массивы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Верните массив длины `2n`, равный `nums`, записанному два раза подряд.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 1000`). Во второй — `n` чисел `nums[i]` (`1 ≤ nums[i] ≤ 1000`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`2n` чисел через пробел — массив `nums`, записанный два раза подряд.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +3
    34 +1 2 1
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +1 2 1 1 2 1
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 🟢 Intern — 25 задач
    2 +
    3 +> Самый старт: ввод/вывод, арифметика, условия и простые циклы. Задачи на 5–15 минут.
    4 +
    5 +[⬅️ Ко всем уровням](../README.md)
    6 +
    7 +| № | Задача | Источник | Сложность | Темы |
    8 +|:-:|---|---|:-:|---|
    9 +| 1 | [Арбуз](01.%20Арбуз.md) | [Codeforces 4A — Watermelon](https://codeforces.com/problemset/problem/4/A) | 800 | математика, условия |
    10 +| 2 | [Театральная площадь](02.%20Театральная%20площадь.md) | [Codeforces 1A — Theatre Square](https://codeforces.com/problemset/problem/1/A) | 1000 | математика, округление вверх |
    11 +| 3 | [Домино](03.%20Домино.md) | [Codeforces 50A — Domino piling](https://codeforces.com/problemset/problem/50/A) | 800 | математика |
    12 +| 4 | [Слишком длинные слова](04.%20Слишком%20длинные%20слова.md) | [Codeforces 71A — Way Too Long Words](https://codeforces.com/problemset/problem/71/A) | 800 | строки |
    13 +| 5 | [Команда](05.%20Команда.md) | [Codeforces 231A — Team](https://codeforces.com/problemset/problem/231/A) | 800 | циклы, условия |
    14 +| 6 | [Следующий раунд](06.%20Следующий%20раунд.md) | [Codeforces 158A — Next Round](https://codeforces.com/problemset/problem/158/A) | 800 | массивы |
    15 +| 7 | [Bit++](07.%20Bit++.md) | [Codeforces 282A — Bit++](https://codeforces.com/problemset/problem/282/A) | 800 | строки, моделирование |
    16 +| 8 | [Петя и строки](08.%20Петя%20и%20строки.md) | [Codeforces 112A — Petya and Strings](https://codeforces.com/problemset/problem/112/A) | 800 | строки |
    17 +| 9 | [Красивая матрица](09.%20Красивая%20матрица.md) | [Codeforces 263A — Beautiful Matrix](https://codeforces.com/problemset/problem/263/A) | 800 | двумерные массивы |
    18 +| 10 | [Помощь в математике](10.%20Помощь%20в%20математике.md) | [Codeforces 339A — Helpful Maths](https://codeforces.com/problemset/problem/339/A) | 800 | строки, сортировка |
    19 +| 11 | [Заглавная буква](11.%20Заглавная%20буква.md) | [Codeforces 281A — Word Capitalization](https://codeforces.com/problemset/problem/281/A) | 800 | строки |
    20 +| 12 | [Мальчик или девочка](12.%20Мальчик%20или%20девочка.md) | [Codeforces 236A — Boy or Girl](https://codeforces.com/problemset/problem/236/A) | 800 | строки, множества |
    21 +| 13 | [Камни на столе](13.%20Камни%20на%20столе.md) | [Codeforces 266A — Stones on the Table](https://codeforces.com/problemset/problem/266/A) | 800 | строки |
    22 +| 14 | [Солдат и бананы](14.%20Солдат%20и%20бананы.md) | [Codeforces 546A — Soldier and Bananas](https://codeforces.com/problemset/problem/546/A) | 800 | математика, циклы |
    23 +| 15 | [Слон](15.%20Слон.md) | [Codeforces 617A — Elephant](https://codeforces.com/problemset/problem/617/A) | 800 | математика |
    24 +| 16 | [Неправильное вычитание](16.%20Неправильное%20вычитание.md) | [Codeforces 977A — Wrong Subtraction](https://codeforces.com/problemset/problem/977/A) | 800 | моделирование |
    25 +| 17 | [Слово](17.%20Слово.md) | [Codeforces 59A — Word](https://codeforces.com/problemset/problem/59/A) | 800 | строки |
    26 +| 18 | [Антон и Даник](18.%20Антон%20и%20Даник.md) | [Codeforces 734A — Anton and Danik](https://codeforces.com/problemset/problem/734/A) | 800 | строки |
    27 +| 19 | [Медвежонок и старший брат](19.%20Медвежонок%20и%20старший%20брат.md) | [Codeforces 791A — Bear and Big Brother](https://codeforces.com/problemset/problem/791/A) | 800 | циклы |
    28 +| 20 | [Трамвай](20.%20Трамвай.md) | [Codeforces 116A — Tram](https://codeforces.com/problemset/problem/116/A) | 800 | моделирование |
    29 +| 21 | [FizzBuzz](21.%20FizzBuzz.md) | [LeetCode 412 — Fizz Buzz](https://leetcode.com/problems/fizz-buzz/) | Easy | циклы, условия |
    30 +| 22 | [Число-палиндром](22.%20Число-палиндром.md) | [LeetCode 9 — Palindrome Number](https://leetcode.com/problems/palindrome-number/) | Easy | математика |
    31 +| 23 | [Бегущая сумма](23.%20Бегущая%20сумма.md) | [LeetCode 1480 — Running Sum of 1d Array](https://leetcode.com/problems/running-sum-of-1d-array/) | Easy | массивы, префиксные суммы |
    32 +| 24 | [Самый богатый клиент](24.%20Самый%20богатый%20клиент.md) | [LeetCode 1672 — Richest Customer Wealth](https://leetcode.com/problems/richest-customer-wealth/) | Easy | двумерные массивы |
    33 +| 25 | [Склейка массива](25.%20Склейка%20массива.md) | [LeetCode 1929 — Concatenation of Array](https://leetcode.com/problems/concatenation-of-array/) | Easy | массивы |
  • Показать разницуСкрыть разницу
    1 −## Задача: Второй максимум
    1 +# 01. Второй максимум
    2 2
    3 −**Сложность:** лёгкая (800–1000 на Codeforces)
    4 −**Тема:** массивы, циклы, условия
    5 −**Язык:** C++
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | Авторская задача курса · похожие: [LeetCode 414 — Third Maximum Number](https://leetcode.com/problems/third-maximum-number/) |
    7 +| 📊 **Сложность** | 800–1000 |
    8 +| 🏷️ **Темы** | массивы, циклы, условия |
    6 9
    7 10 ### Условие
    8 11
    68 71 Желательно решить задачу за **O(N)** по времени и **O(1)** по дополнительной памяти.
    69 72
    70 73 **Твоя задача:** Напиши решение на C++ самостоятельно. Использовать сортировку не нужно.
    74 +
    75 +---
    76 +
    77 +[⬅️ К списку задач уровня](README.md)
  • Показать разницуСкрыть разницу
    1 −## Задача: Самая длинная серия
    1 +# 02. Самая длинная серия
    2 2
    3 −**Сложность:** лёгкая (800–1000 на Codeforces)
    4 −**Тема:** массивы, циклы, условия
    5 −**Язык:** C++
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | Авторская задача курса · похожие: [LeetCode 485 — Max Consecutive Ones](https://leetcode.com/problems/max-consecutive-ones/), [Codeforces 96A — Football](https://codeforces.com/problemset/problem/96/A) |
    7 +| 📊 **Сложность** | 800–1000 |
    8 +| 🏷️ **Темы** | массивы, циклы, условия |
    6 9
    7 10 ### Условие
    8 11
    80 83 - Сортировать массив нельзя.
    81 84
    82 85 Подсказка: если текущее число равно предыдущему, увеличивай длину серии. Иначе начинай новую серию с длины `1`.
    86 +
    87 +---
    88 +
    89 +[⬅️ К списку задач уровня](README.md)
  • Показать разницуСкрыть разницу
    1 +# 03. Юный физик
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 69A — Young Physicist](https://codeforces.com/problemset/problem/69/A) |
    7 +| 📊 **Сложность** | 1000 |
    8 +| 🏷️ **Темы** | массивы, математика |
    9 +
    10 +## 📝 Условие
    11 +
    12 +На тело действуют `n` сил, заданных векторами `(x, y, z)`. Находится ли тело в равновесии (сумма всех векторов равна нулю)?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 100`). Далее `n` строк по три целых числа `x_i`, `y_i`, `z_i` (`-100 ≤ x_i, y_i, z_i ≤ 100`) — координаты векторов сил.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`YES`, если тело в равновесии, иначе `NO`.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +3
    30 +4 1 7
    31 +-2 4 -1
    32 +1 -5 -3
    33 +```
    34 +
    35 +**Вывод:**
    36 +
    37 +```text
    38 +NO
    39 +```
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 04. Почти счастливое число
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 110A — Nearly Lucky Number](https://codeforces.com/problemset/problem/110/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Счастливые цифры — 4 и 7. Число «почти счастливое», если количество счастливых цифр в нём само является счастливым числом. Проверьте.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одно число `n` (`1 ≤ n ≤ 10¹⁸`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`YES`, если число почти счастливое, иначе `NO`.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +40047
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +NO
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 05. Работа со строкой
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 118A — String Task](https://codeforces.com/problemset/problem/118/A) |
    7 +| 📊 **Сложность** | 1000 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Удалите из строки все гласные (`A O Y E U I` в любом регистре), перед каждой согласной поставьте точку, а все буквы сделайте строчными.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одна строка из заглавных и строчных латинских букв длиной от 1 до 100.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Строка после обработки (гарантируется, что она не пустая).
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +tour
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +.t.r
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 06. Футбол
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 96A — Football](https://codeforces.com/problemset/problem/96/A) |
    7 +| 📊 **Сложность** | 900 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Строка из 0 и 1 — позиции игроков двух команд. Ситуация опасная, если подряд стоят хотя бы 7 игроков одной команды. Выведите `YES` / `NO`.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одна непустая строка из `0` и `1` длиной до 100. В ней есть игроки обеих команд.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`YES`, если ситуация опасная, иначе `NO`.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +001001
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +NO
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 07. Очередь в школе
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 266B — Queue at the School](https://codeforces.com/problemset/problem/266/B) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки, моделирование |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Очередь из мальчиков `B` и девочек `G`. Каждую секунду каждый мальчик, стоящий прямо перед девочкой, пропускает её вперёд. Как будет выглядеть очередь через `t` секунд?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке два числа `n` и `t` (`1 ≤ n, t ≤ 50`). Во второй — строка из `n` символов `B` и `G`.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Строка — очередь через `t` секунд.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +5 1
    30 +BGGBG
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +GBGGB
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 08. Близнецы
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 160A — Twins](https://codeforces.com/problemset/problem/160/A) |
    7 +| 📊 **Сложность** | 900 |
    8 +| 🏷️ **Темы** | жадность, сортировка |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Есть `n` монет. Какое минимальное число монет нужно взять, чтобы их сумма была **строго больше** суммы оставшихся?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 100`). Во второй — `n` чисел `a_i` (`1 ≤ a_i ≤ 100`) — номиналы монет.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — минимальное количество монет.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +2
    30 +3 3
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +2
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 09. Красивый год
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 271A — Beautiful Year](https://codeforces.com/problemset/problem/271/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | перебор |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Найдите минимальный год, строго больший `y`, в котором все цифры различны.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одно число `y` (`1000 ≤ y ≤ 9000`) — номер года.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — минимальный год больше `y` со всеми различными цифрами.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +1987
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +2013
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 10. Магниты
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 344A — Magnets](https://codeforces.com/problemset/problem/344/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Магниты выложены в ряд, каждый — `01` или `10`. Соседние одинаковые магниты притягиваются в одну группу. Сколько получится групп?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Далее `n` строк, в каждой `01` или `10`.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — количество групп.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +6
    30 +10
    31 +10
    32 +10
    33 +01
    34 +10
    35 +10
    36 +```
    37 +
    38 +**Вывод:**
    39 +
    40 +```text
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 11. cAPS lOCK
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 131A — cAPS lOCK](https://codeforces.com/problemset/problem/131/A) |
    7 +| 📊 **Сложность** | 1000 |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Если слово целиком набрано заглавными или все буквы, кроме первой, заглавные — значит, случайно нажат Caps Lock. Поменяйте регистр всех букв в таком слове.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +Одно слово из заглавных и строчных латинских букв длиной от 1 до 100.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Слово после обработки.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +cAPS
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +Caps
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 12. Ваня и фонари
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 492B — Vanya and Lanterns](https://codeforces.com/problemset/problem/492/B) |
    7 +| 📊 **Сложность** | 1200 |
    8 +| 🏷️ **Темы** | сортировка, жадность |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Улица длиной `l`, на ней `n` фонарей. Каждый освещает расстояние `d` в обе стороны. Найдите минимальное `d`, при котором освещена вся улица.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке два числа `n` и `l` (`1 ≤ n ≤ 1000`, `1 ≤ l ≤ 10⁹`). Во второй — `n` чисел `a_i` (`0 ≤ a_i ≤ l`) — координаты фонарей (могут совпадать).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно вещественное число — минимальный радиус `d` (погрешность до 10⁻⁹).
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +7 15
    30 +15 5 3 7 9 14 0
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +2.5000000000
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 13. Сумма круглых чисел
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [Codeforces 1352A — Sum of Round Numbers](https://codeforces.com/problemset/problem/1352/A) |
    7 +| 📊 **Сложность** | 800 |
    8 +| 🏷️ **Темы** | математика |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Круглое число — это одна ненулевая цифра и далее нули (`4000`, `7`). Представьте `n` в виде суммы минимального количества круглых чисел.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `t` (`1 ≤ t ≤ 10⁴`) — количество тестов. Далее `t` строк, в каждой число `n` (`1 ≤ n ≤ 10⁴`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Для каждого теста: в первой строке `k` — минимальное количество слагаемых, во второй — сами `k` круглых чисел.
    21 +
    22 +> [!NOTE]
    23 +> Слагаемые можно выводить в любом порядке.
    24 +
    25 +## 🧪 Тесты
    26 +
    27 +### Тест 1
    28 +
    29 +**Ввод:**
    30 +
    31 +```text
    32 +3
    33 +5009
    34 +7
    35 +9876
    36 +```
    37 +
    38 +**Вывод:**
    39 +
    40 +```text
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 14. Сумма двух
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 1 — Two Sum](https://leetcode.com/problems/two-sum/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | хеш-таблицы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Дан массив и число `target`. Найдите индексы двух элементов, сумма которых равна `target`.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке два числа `n` и `target` (`2 ≤ n ≤ 10⁴`). Во второй — `n` целых чисел `nums[i]`. Гарантируется, что ответ ровно один.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Два индекса `i < j` (с нуля), для которых `nums[i] + nums[j] = target`.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +4 9
    34 +2 7 11 15
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +0 1
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 15. Правильные скобки
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 20 — Valid Parentheses](https://leetcode.com/problems/valid-parentheses/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | стек, строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Строка из скобок `()[]{}`. Проверьте, является ли последовательность правильной.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +Одна строка `s` (`1 ≤ |s| ≤ 10⁴`) из символов `()[]{}`.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`true`, если скобочная последовательность правильная, иначе `false`.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +()[]{}
    34 +```
    35 +
    36 +**Вывод:**
    37 +
    38 +```text
    39 +true
    40 +```
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 16. Удаление дубликатов
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 26 — Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | два указателя |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Удалите дубликаты из отсортированного массива **на месте** и верните количество уникальных элементов.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 3·10⁴`). Во второй — `n` чисел, отсортированных по неубыванию.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +В первой строке `k` — количество уникальных чисел. Во второй — эти `k` чисел по порядку.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +3
    34 +1 1 2
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +2
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 17. Акции: лучший момент
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 121 — Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | массивы, жадность |
    9 +
    10 +## 📝 Условие
    11 +
    12 +`prices[i]` — цена акции в день `i`. Купите один раз и продайте позже один раз. Какая максимальная прибыль?
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Во второй — `n` чисел `prices[i]` (`0 ≤ prices[i] ≤ 10⁴`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — максимальная прибыль (или `0`).
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +6
    34 +7 1 5 3 6 4
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +5
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 18. Есть ли повторы
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 217 — Contains Duplicate](https://leetcode.com/problems/contains-duplicate/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | множества |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Определите, встречается ли в массиве какое-нибудь значение хотя бы дважды.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Во второй — `n` целых чисел.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`true`, если есть повторяющееся значение, иначе `false`.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +4
    34 +1 2 3 1
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +true
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 19. Анаграмма
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 242 — Valid Anagram](https://leetcode.com/problems/valid-anagram/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | строки, подсчёт |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Проверьте, является ли строка `t` анаграммой строки `s`.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +Две строки `s` и `t` из строчных латинских букв, каждая на отдельной строке.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`true`, если `t` — анаграмма `s`, иначе `false`.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +anagram
    34 +nagaram
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +true
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 20. Сдвинуть нули
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 283 — Move Zeroes](https://leetcode.com/problems/move-zeroes/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | два указателя |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Переместите все нули в конец массива, сохранив порядок остальных элементов. Делать на месте.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 10⁴`). Во второй — `n` целых чисел.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`n` чисел — массив после перемещения нулей в конец.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +5
    34 +0 1 0 3 12
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +1 3 12 0 0
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 21. Бинарный поиск
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 704 — Binary Search](https://leetcode.com/problems/binary-search/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | бинарный поиск |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Найдите индекс `target` в отсортированном массиве или верните `-1`. Требуется O(log N).
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке два числа `n` и `target`. Во второй — `n` различных чисел по возрастанию.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Индекс `target` (с нуля) или `-1`.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +6 9
    34 +-1 0 3 5 9 12
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +4
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 22. Одинокое число
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 136 — Single Number](https://leetcode.com/problems/single-number/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | битовые операции |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Каждое число в массиве встречается дважды, кроме одного. Найдите его за O(N) и O(1) памяти.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке нечётное число `n` (`1 ≤ n ≤ 3·10⁴`). Во второй — `n` чисел: все встречаются дважды, кроме одного.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — то, что встречается один раз.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +3
    34 +2 2 1
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +1
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 23. Элемент большинства
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 169 — Majority Element](https://leetcode.com/problems/majority-element/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | подсчёт, алгоритм Бойера–Мура |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Найдите элемент, который встречается в массиве больше `n / 2` раз.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 5·10⁴`). Во второй — `n` чисел. Гарантируется, что элемент большинства существует.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — элемент, встречающийся больше `n / 2` раз.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +3
    34 +3 2 3
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +3
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 24. Общий префикс
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 14 — Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Найдите самый длинный общий префикс массива строк.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 200`). Далее `n` строк — слова из строчных латинских букв.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Самый длинный общий префикс (если его нет — пустая строка).
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +3
    34 +flower
    35 +flow
    36 +flight
    37 +```
    38 +
    39 +**Вывод:**
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 25. Место для вставки
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🔵 Easy |
    6 +| 🔗 **Источник** | [LeetCode 35 — Search Insert Position](https://leetcode.com/problems/search-insert-position/) |
    7 +| 📊 **Сложность** | Easy |
    8 +| 🏷️ **Темы** | бинарный поиск |
    9 +
    10 +## 📝 Условие
    11 +
    12 +В отсортированном массиве найдите индекс `target` или позицию, куда его нужно вставить.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке два числа `n` и `target`. Во второй — `n` различных чисел по возрастанию.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — индекс `target` или позиция, куда его нужно вставить.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +4 5
    34 +1 3 5 6
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +2
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 🔵 Easy — 25 задач
    2 +
    3 +> Массивы, строки, простая жадность и сортировка. Уже нужно думать над идеей, но без сложных алгоритмов.
    4 +
    5 +[⬅️ Ко всем уровням](../README.md)
    6 +
    7 +| № | Задача | Источник | Сложность | Темы |
    8 +|:-:|---|---|:-:|---|
    9 +| 1 | [Второй максимум](01.%20Второй%20максимум.md) | Авторская · похожая [LeetCode 414 — Third Maximum Number](https://leetcode.com/problems/third-maximum-number/) | 800–1000 | массивы, циклы, условия |
    10 +| 2 | [Самая длинная серия](02.%20Самая%20длинная%20серия.md) | Авторская · похожая [LeetCode 485 — Max Consecutive Ones](https://leetcode.com/problems/max-consecutive-ones/) | 800–1000 | массивы, циклы, условия |
    11 +| 3 | [Юный физик](03.%20Юный%20физик.md) | [Codeforces 69A — Young Physicist](https://codeforces.com/problemset/problem/69/A) | 1000 | массивы, математика |
    12 +| 4 | [Почти счастливое число](04.%20Почти%20счастливое%20число.md) | [Codeforces 110A — Nearly Lucky Number](https://codeforces.com/problemset/problem/110/A) | 800 | строки |
    13 +| 5 | [Работа со строкой](05.%20Работа%20со%20строкой.md) | [Codeforces 118A — String Task](https://codeforces.com/problemset/problem/118/A) | 1000 | строки |
    14 +| 6 | [Футбол](06.%20Футбол.md) | [Codeforces 96A — Football](https://codeforces.com/problemset/problem/96/A) | 900 | строки |
    15 +| 7 | [Очередь в школе](07.%20Очередь%20в%20школе.md) | [Codeforces 266B — Queue at the School](https://codeforces.com/problemset/problem/266/B) | 800 | строки, моделирование |
    16 +| 8 | [Близнецы](08.%20Близнецы.md) | [Codeforces 160A — Twins](https://codeforces.com/problemset/problem/160/A) | 900 | жадность, сортировка |
    17 +| 9 | [Красивый год](09.%20Красивый%20год.md) | [Codeforces 271A — Beautiful Year](https://codeforces.com/problemset/problem/271/A) | 800 | перебор |
    18 +| 10 | [Магниты](10.%20Магниты.md) | [Codeforces 344A — Magnets](https://codeforces.com/problemset/problem/344/A) | 800 | строки |
    19 +| 11 | [cAPS lOCK](11.%20cAPS%20lOCK.md) | [Codeforces 131A — cAPS lOCK](https://codeforces.com/problemset/problem/131/A) | 1000 | строки |
    20 +| 12 | [Ваня и фонари](12.%20Ваня%20и%20фонари.md) | [Codeforces 492B — Vanya and Lanterns](https://codeforces.com/problemset/problem/492/B) | 1200 | сортировка, жадность |
    21 +| 13 | [Сумма круглых чисел](13.%20Сумма%20круглых%20чисел.md) | [Codeforces 1352A — Sum of Round Numbers](https://codeforces.com/problemset/problem/1352/A) | 800 | математика |
    22 +| 14 | [Сумма двух](14.%20Сумма%20двух.md) | [LeetCode 1 — Two Sum](https://leetcode.com/problems/two-sum/) | Easy | хеш-таблицы |
    23 +| 15 | [Правильные скобки](15.%20Правильные%20скобки.md) | [LeetCode 20 — Valid Parentheses](https://leetcode.com/problems/valid-parentheses/) | Easy | стек, строки |
    24 +| 16 | [Удаление дубликатов](16.%20Удаление%20дубликатов.md) | [LeetCode 26 — Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/) | Easy | два указателя |
    25 +| 17 | [Акции: лучший момент](17.%20Акции%20лучший%20момент.md) | [LeetCode 121 — Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) | Easy | массивы, жадность |
    26 +| 18 | [Есть ли повторы](18.%20Есть%20ли%20повторы.md) | [LeetCode 217 — Contains Duplicate](https://leetcode.com/problems/contains-duplicate/) | Easy | множества |
    27 +| 19 | [Анаграмма](19.%20Анаграмма.md) | [LeetCode 242 — Valid Anagram](https://leetcode.com/problems/valid-anagram/) | Easy | строки, подсчёт |
    28 +| 20 | [Сдвинуть нули](20.%20Сдвинуть%20нули.md) | [LeetCode 283 — Move Zeroes](https://leetcode.com/problems/move-zeroes/) | Easy | два указателя |
    29 +| 21 | [Бинарный поиск](21.%20Бинарный%20поиск.md) | [LeetCode 704 — Binary Search](https://leetcode.com/problems/binary-search/) | Easy | бинарный поиск |
    30 +| 22 | [Одинокое число](22.%20Одинокое%20число.md) | [LeetCode 136 — Single Number](https://leetcode.com/problems/single-number/) | Easy | битовые операции |
    31 +| 23 | [Элемент большинства](23.%20Элемент%20большинства.md) | [LeetCode 169 — Majority Element](https://leetcode.com/problems/majority-element/) | Easy | подсчёт, алгоритм Бойера–Мура |
    32 +| 24 | [Общий префикс](24.%20Общий%20префикс.md) | [LeetCode 14 — Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix/) | Easy | строки |
    33 +| 25 | [Место для вставки](25.%20Место%20для%20вставки.md) | [LeetCode 35 — Search Insert Position](https://leetcode.com/problems/search-insert-position/) | Easy | бинарный поиск |
  • Показать разницуСкрыть разницу
    1 +# 01. Система регистрации
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 4C — Registration system](https://codeforces.com/problemset/problem/4/C) |
    7 +| 📊 **Сложность** | 1300 |
    8 +| 🏷️ **Темы** | хеш-таблицы, строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Пользователи регистрируются по очереди. Если имя свободно — выведите `OK`. Иначе выдайте имя `name1`, `name2`, … с минимальным свободным номером.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Далее `n` строк — запрашиваемые имена (строчные латинские буквы, до 32 символов).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`n` строк — ответы системы: `OK` или новое имя.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +4
    30 +abacaba
    31 +acaba
    32 +abacaba
    33 +acab
    34 +```
    35 +
    36 +**Вывод:**
    37 +
    38 +```text
    39 +OK
    40 +OK
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 02. Книги
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 279B — Books](https://codeforces.com/problemset/problem/279/B) |
    7 +| 📊 **Сложность** | 1400 |
    8 +| 🏷️ **Темы** | два указателя |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Книги читаются подряд, `i`-я — за `a_i` минут. Есть `t` минут: можно начать с любой книги и читать по порядку. Сколько максимум книг удастся прочитать целиком?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке два числа `n` и `t` (`1 ≤ n ≤ 10⁵`, `1 ≤ t ≤ 10⁹`). Во второй — `n` чисел `a_i` (`1 ≤ a_i ≤ 10⁴`) — время чтения книг.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — максимальное количество книг.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +4 5
    30 +3 1 2 1
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +3
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 03. Количество способов
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 466C — Number of Ways](https://codeforces.com/problemset/problem/466/C) |
    7 +| 📊 **Сложность** | 1700 |
    8 +| 🏷️ **Темы** | префиксные суммы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Сколькими способами можно разрезать массив на три непустые непрерывные части с равными суммами?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 5·10⁵`). Во второй — `n` целых чисел (`|a_i| ≤ 10⁹`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — количество способов разрезать массив на три части с равными суммами.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +5
    30 +1 2 3 0 3
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +2
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 04. Скука
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 455A — Boredom](https://codeforces.com/problemset/problem/455/A) |
    7 +| 📊 **Сложность** | 1500 |
    8 +| 🏷️ **Темы** | динамическое программирование |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Выбирая число `x`, вы получаете `x` очков, но все элементы, равные `x - 1` и `x + 1`, удаляются. Сколько максимум очков можно набрать?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Во второй — `n` чисел `a_i` (`1 ≤ a_i ≤ 10⁵`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — максимальное количество очков.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +2
    30 +1 2
    31 +```
    32 +
    33 +**Вывод:**
    34 +
    35 +```text
    36 +2
    37 +```
    38 +
    39 +### Тест 2
    40 +
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 05. Разрезание ленты
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 189A — Cut Ribbon](https://codeforces.com/problemset/problem/189/A) |
    7 +| 📊 **Сложность** | 1300 |
    8 +| 🏷️ **Темы** | динамическое программирование |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Ленту длины `n` нужно разрезать на куски длины только `a`, `b` или `c`, чтобы кусков было как можно больше.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В одной строке четыре числа `n`, `a`, `b`, `c` (`1 ≤ n, a, b, c ≤ 4000`). Гарантируется, что хотя бы одно разрезание существует.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — максимальное количество кусков.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +5 5 3 2
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +2
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 06. Серёжа и суффиксы
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 368B — Sereja and Suffixes](https://codeforces.com/problemset/problem/368/B) |
    7 +| 📊 **Сложность** | 1100 |
    8 +| 🏷️ **Темы** | множества, предподсчёт |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Дан массив и `m` запросов `l`. Для каждого выведите количество различных чисел на отрезке `a[l..n]`.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке два числа `n` и `m` (`1 ≤ n, m ≤ 10⁵`). Во второй — `n` чисел `a_i` (`1 ≤ a_i ≤ 10⁵`). Далее `m` строк, в каждой число `l_i` (`1 ≤ l_i ≤ n`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`m` строк — количество различных чисел на суффиксе `a[l_i..n]`.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +10 10
    30 +1 2 3 4 1 2 3 4 100000 99999
    31 +1
    32 +2
    33 +3
    34 +4
    35 +5
    36 +6
    37 +7
    38 +8
    39 +9
    40 +10
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 07. Камни Куриямы Мирай
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 433B — Kuriyama Mirai's Stones](https://codeforces.com/problemset/problem/433/B) |
    7 +| 📊 **Сложность** | 1200 |
    8 +| 🏷️ **Темы** | префиксные суммы, сортировка |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Запросы двух типов: сумма на отрезке `[l, r]` исходного массива или того же массива после сортировки.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Во второй — `n` чисел `v_i` (`1 ≤ v_i ≤ 10⁹`). В третьей — число `m` запросов. Далее `m` строк по три числа `type l r`: `type = 1` — сумма на отрезке исходного массива, `type = 2` — отсортированного.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`m` строк — ответы на запросы.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +6
    30 +6 4 2 7 2 7
    31 +3
    32 +2 3 6
    33 +1 3 4
    34 +1 1 6
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +24
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 08. Интересный напиток
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 706B — Interesting drink](https://codeforces.com/problemset/problem/706/B) |
    7 +| 📊 **Сложность** | 1100 |
    8 +| 🏷️ **Темы** | бинарный поиск |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Известны цены напитка в `n` магазинах. В `i`-й день у Василия `m_i` монет. В скольких магазинах он может купить напиток?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Во второй — `n` чисел `x_i` — цены в магазинах. В третьей — число `q`. Далее `q` строк, в каждой `m_i` — сколько монет у Василия в `i`-й день.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +`q` строк — в скольких магазинах можно купить напиток в каждый из дней.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +5
    30 +3 10 8 6 11
    31 +4
    32 +1
    33 +10
    34 +3
    35 +11
    36 +```
    37 +
    38 +**Вывод:**
    39 +
    40 +```text
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 09. Кефа и парк
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 580C — Kefa and Park](https://codeforces.com/problemset/problem/580/C) |
    7 +| 📊 **Сложность** | 1500 |
    8 +| 🏷️ **Темы** | деревья, DFS |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Парк — дерево с корнем в 1, в некоторых вершинах живут коты. Сколько листьев-ресторанов можно достичь, если на пути нельзя встретить больше `m` котов **подряд**?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке два числа `n` и `m` (`2 ≤ n ≤ 10⁵`, `1 ≤ m ≤ n`). Во второй — `n` чисел 0/1: есть ли кот в вершине. Далее `n − 1` строк — рёбра дерева `x y`. Корень — вершина 1.
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — количество подходящих листьев.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +4 1
    30 +1 1 0 0
    31 +1 2
    32 +1 3
    33 +1 4
    34 +```
    35 +
    36 +**Вывод:**
    37 +
    38 +```text
    39 +2
    40 +```
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 10. Две кнопки
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 520B — Two Buttons](https://codeforces.com/problemset/problem/520/B) |
    7 +| 📊 **Сложность** | 1400 |
    8 +| 🏷️ **Темы** | BFS, жадность |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Красная кнопка умножает число на 2, синяя — вычитает 1. За какое минимальное число нажатий из `n` получить `m`?
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В одной строке два различных числа `n` и `m` (`1 ≤ n, m ≤ 10⁴`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — минимальное количество нажатий.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +4 6
    30 +```
    31 +
    32 +**Вывод:**
    33 +
    34 +```text
    35 +2
    36 +```
    37 +
    38 +### Тест 2
    39 +
    40 +**Ввод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 11. Пара тем
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [Codeforces 1324D — Pair of Topics](https://codeforces.com/problemset/problem/1324/D) |
    7 +| 📊 **Сложность** | 1400 |
    8 +| 🏷️ **Темы** | сортировка, два указателя |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Посчитайте количество пар `i < j`, для которых `a_i + a_j > b_i + b_j`.
    13 +
    14 +## 📥 Входные данные
    15 +
    16 +В первой строке число `n` (`2 ≤ n ≤ 2·10⁵`). Во второй — `n` чисел `a_i`, в третьей — `n` чисел `b_i` (`1 ≤ a_i, b_i ≤ 10⁹`).
    17 +
    18 +## 📤 Выходные данные
    19 +
    20 +Одно число — количество хороших пар.
    21 +
    22 +## 🧪 Тесты
    23 +
    24 +### Тест 1
    25 +
    26 +**Ввод:**
    27 +
    28 +```text
    29 +5
    30 +4 8 2 6 2
    31 +4 5 4 1 3
    32 +```
    33 +
    34 +**Вывод:**
    35 +
    36 +```text
    37 +7
    38 +```
    39 +
    40 +### Тест 2
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 12. Подстрока без повторов
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 3 — Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | скользящее окно |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Найдите длину самой длинной подстроки без повторяющихся символов.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +Одна строка `s` без пробелов (`1 ≤ |s| ≤ 5·10⁴`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — длина самой длинной подстроки без повторов.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +abcabcbb
    34 +```
    35 +
    36 +**Вывод:**
    37 +
    38 +```text
    39 +3
    40 +```
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 13. Три числа с нулевой суммой
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 15 — 3Sum](https://leetcode.com/problems/3sum/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | сортировка, два указателя |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Найдите все **уникальные** тройки чисел массива с суммой 0.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`3 ≤ n ≤ 3000`). Во второй — `n` целых чисел.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +В первой строке `k` — количество уникальных троек с суммой 0. Далее `k` строк — тройки, каждая по возрастанию, сами тройки — в лексикографическом порядке.
    25 +
    26 +> [!NOTE]
    27 +> На LeetCode порядок троек не важен.
    28 +
    29 +## 🧪 Тесты
    30 +
    31 +### Тест 1
    32 +
    33 +**Ввод:**
    34 +
    35 +```text
    36 +6
    37 +-1 0 1 2 -1 -4
    38 +```
    39 +
    40 +**Вывод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 14. Контейнер с водой
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 11 — Container With Most Water](https://leetcode.com/problems/container-with-most-water/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | два указателя |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Высоты вертикальных линий заданы массивом. Выберите две линии, образующие с осью X контейнер наибольшей площади.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`2 ≤ n ≤ 10⁵`). Во второй — `n` чисел `height[i]` (`0 ≤ height[i] ≤ 10⁴`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — максимальная площадь.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +9
    34 +1 8 6 2 5 4 8 3 7
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +49
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 15. Группировка анаграмм
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 49 — Group Anagrams](https://leetcode.com/problems/group-anagrams/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | хеш-таблицы, строки |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Разбейте массив строк на группы анаграмм.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 10⁴`). Далее `n` строк — слова из строчных латинских букв.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +В первой строке `k` — количество групп. Далее `k` строк — слова каждой группы через пробел, по алфавиту; группы упорядочены по первому слову.
    25 +
    26 +> [!NOTE]
    27 +> На LeetCode порядок групп и слов в группе не важен.
    28 +
    29 +## 🧪 Тесты
    30 +
    31 +### Тест 1
    32 +
    33 +**Ввод:**
    34 +
    35 +```text
    36 +6
    37 +eat
    38 +tea
    39 +tan
    40 +ate
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 16. Максимальный подмассив
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 53 — Maximum Subarray](https://leetcode.com/problems/maximum-subarray/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | динамическое программирование |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Найдите непрерывный подмассив с наибольшей суммой.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Во второй — `n` целых чисел (`-10⁴ ≤ nums[i] ≤ 10⁴`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — максимальная сумма непрерывного подмассива.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +9
    34 +-2 1 -3 4 -1 2 1 -5 4
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +6
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 17. Слияние отрезков
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 56 — Merge Intervals](https://leetcode.com/problems/merge-intervals/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | сортировка |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Объедините все пересекающиеся отрезки.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 10⁴`). Далее `n` строк по два числа `start end` (`start ≤ end`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +В первой строке `k` — количество отрезков после слияния. Далее `k` строк `start end` по возрастанию.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +4
    34 +1 3
    35 +2 6
    36 +8 10
    37 +15 18
    38 +```
    39 +
    40 +**Вывод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 18. Грабитель домов
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 198 — House Robber](https://leetcode.com/problems/house-robber/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | динамическое программирование |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Нельзя грабить два соседних дома. Какую максимальную сумму можно унести?
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 100`). Во второй — `n` чисел (`0 ≤ nums[i] ≤ 400`) — деньги в домах.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — максимальная сумма.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +4
    34 +1 2 3 1
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +4
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 19. Количество островов
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 200 — Number of Islands](https://leetcode.com/problems/number-of-islands/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | DFS/BFS по сетке |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Дана карта из `1` (суша) и `0` (вода). Посчитайте количество островов.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке два числа `m` и `n` (`1 ≤ m, n ≤ 300`). Далее `m` строк по `n` символов `0`/`1` без пробелов.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — количество островов.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +4 5
    34 +11110
    35 +11010
    36 +11000
    37 +00000
    38 +```
    39 +
    40 +**Вывод:**
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 20. Размен монет
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 322 — Coin Change](https://leetcode.com/problems/coin-change/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | динамическое программирование |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Найдите минимальное количество монет заданных номиналов, чтобы набрать сумму `amount`, или `-1`.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке два числа `n` и `amount` (`1 ≤ n ≤ 12`, `0 ≤ amount ≤ 10⁴`). Во второй — `n` различных номиналов монет.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — минимальное количество монет или `-1`.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +3 11
    34 +1 2 5
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +3
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 21. Подмассивы с суммой K
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 560 — Subarray Sum Equals K](https://leetcode.com/problems/subarray-sum-equals-k/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | префиксные суммы, хеш-таблицы |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Посчитайте количество непрерывных подмассивов с суммой ровно `k` (числа могут быть отрицательными).
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке два числа `n` и `k` (`1 ≤ n ≤ 2·10⁴`). Во второй — `n` целых чисел (`-1000 ≤ nums[i] ≤ 1000`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — количество подмассивов с суммой `k`.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +3 2
    34 +1 1 1
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +2
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 22. Тёплые дни
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 739 — Daily Temperatures](https://leetcode.com/problems/daily-temperatures/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | монотонный стек |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Для каждого дня найдите, через сколько дней станет теплее.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке число `n` (`1 ≤ n ≤ 10⁵`). Во второй — `n` чисел `temperatures[i]` (`30 ≤ t ≤ 100`).
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`n` чисел — через сколько дней станет теплее (`0`, если не станет).
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +8
    34 +73 74 75 71 69 72 76 73
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +1 1 4 2 1 1 0 0
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 23. Расписание курсов
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 207 — Course Schedule](https://leetcode.com/problems/course-schedule/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | графы, топологическая сортировка |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Есть курсы и зависимости «чтобы пройти A, нужно пройти B». Можно ли пройти все курсы?
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке два числа `numCourses` и `p` (`1 ≤ numCourses ≤ 2000`, `0 ≤ p ≤ 5000`). Далее `p` строк `a b` — чтобы пройти курс `a`, нужно сначала пройти курс `b`. Курсы нумеруются с нуля.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +`true`, если можно пройти все курсы, иначе `false`.
    25 +
    26 +## 🧪 Тесты
    27 +
    28 +### Тест 1
    29 +
    30 +**Ввод:**
    31 +
    32 +```text
    33 +2 1
    34 +1 0
    35 +```
    36 +
    37 +**Вывод:**
    38 +
    39 +```text
    40 +true
    Разница обрезана: показаны первые 40 строк.
  • Показать разницуСкрыть разницу
    1 +# 24. Гниющие апельсины
    2 +
    3 +| | |
    4 +|---|---|
    5 +| 🎯 **Уровень** | 🟠 Middle |
    6 +| 🔗 **Источник** | [LeetCode 994 — Rotting Oranges](https://leetcode.com/problems/rotting-oranges/) |
    7 +| 📊 **Сложность** | Medium |
    8 +| 🏷️ **Темы** | BFS по сетке |
    9 +
    10 +## 📝 Условие
    11 +
    12 +Каждую минуту гнилой апельсин заражает соседей. Через сколько минут сгниют все апельсины? Если никогда — `-1`.
    13 +
    14 +> [!TIP]
    15 +> На LeetCode `main` не нужен: данные приходят аргументами метода класса `Solution`.
    16 +> Формат ниже — для запуска у себя через `cin` / `cout`.
    17 +
    18 +## 📥 Входные данные
    19 +
    20 +В первой строке два числа `m` и `n` (`1 ≤ m, n ≤ 10`). Далее `m` строк по `n` чисел: `0` — пусто, `1` — свежий апельсин, `2` — гнилой.
    21 +
    22 +## 📤 Выходные данные
    23 +
    24 +Одно число — через сколько минут сгниют все апельсины, или `-1`.
    25 +
    26 +## 🧪 Тесты
    27 +
    Разница обрезана: показаны первые 27 строк.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
  • Двоичный файл — показывать нечего.
Разница обрезана: показаны первые 3000 строк.