Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Укажіть Kotlin/JVM, JDK 27 і контракт вхідних даних. Порожню колекцію обробляйте явно. У звіті визначайте порядок рядків, щоб результат можна було порівняти з очікуваним незалежно від реалізації хеш-таблиці.
Варіанти
Варіант 1. Телефонна книга
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення телефонної книги. Користувач вводить ім’я і телефон; контакти зберігати в Map, новий телефон для наявного імені замінює старий. Реалізувати додавання контактів, перегляд і виведення списку контактів, упорядкованого за іменем. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення телефонної книги. Користувач вводить ім’я і телефон; контакти зберігати в Map, новий телефон для наявного імені замінює старий. Реалізувати додавання контактів, перегляд і виведення списку контактів, упорядкованого за іменем. Додатково: пошук за префіксом і група контакту. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення телефонної книги. Користувач вводить ім’я і телефон; контакти зберігати в Map, новий телефон для наявного імені замінює старий. Реалізувати додавання контактів, перегляд і виведення списку контактів, упорядкованого за іменем. Додатково: пошук за префіксом і група контакту; індекс груп без дублювання контактів. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 2. Словник перекладів
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення словника перекладів. Користувач вводить слово і переклад; кілька перекладів одного слова зберігати в Set. Реалізувати додавання перекладів, перегляд словника і пошук перекладів заданого слова. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення словника перекладів. Користувач вводить слово і переклад; кілька перекладів одного слова зберігати в Set. Реалізувати додавання перекладів, перегляд словника і пошук перекладів заданого слова. Додатково: пошук в обох напрямах. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення словника перекладів. Користувач вводить слово і переклад; кілька перекладів одного слова зберігати в Set. Реалізувати додавання перекладів, перегляд словника і пошук перекладів заданого слова. Додатково: пошук в обох напрямах; узгоджене видалення з обох індексів. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 3. Шкільний журнал
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення шкільного журналу. Користувач вводить ім’я учня й оцінку 0..100; оцінки зберігати в Map<String,MutableList<Int>>. Реалізувати додавання оцінок, перегляд журналу і виведення оцінок заданого учня. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення шкільного журналу. Користувач вводить ім’я учня й оцінку 0..100; оцінки зберігати в Map<String,MutableList<Int>>. Реалізувати додавання оцінок, перегляд журналу і виведення оцінок заданого учня. Додатково: середнє кожного учня і загальний список оцінок. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення шкільного журналу. Користувач вводить ім’я учня й оцінку 0..100; оцінки зберігати в Map<String,MutableList<Int>>. Реалізувати додавання оцінок, перегляд журналу і виведення оцінок заданого учня. Додатково: середнє кожного учня і загальний список оцінок; злиття двох журналів із явним правилом повторів. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 4. Облік складу
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку залишків на складі. Користувач вводить код товару й кількість; залишки зберігати в MutableMap. Реалізувати додавання товарів, перегляд і виведення поточних залишків за кодами. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку залишків на складі. Користувач вводить код товару й кількість; залишки зберігати в MutableMap. Реалізувати додавання товарів, перегляд і виведення поточних залишків за кодами. Додатково: команди приймання і відвантаження без від’ємного залишку. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку залишків на складі. Користувач вводить код товару й кількість; залишки зберігати в MutableMap. Реалізувати додавання товарів, перегляд і виведення поточних залишків за кодами. Додатково: команди приймання і відвантаження без від’ємного залишку; пакет операцій: перевірити весь пакет до зміни. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 5. Унікальні відвідувачі
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку унікальних відвідувачів сайту. Користувач вводить день і IPv4-адресу відвідувача; для кожного дня зберігати множину адрес. Реалізувати додавання відвідувань, перегляд і кількість унікальних адрес кожного дня. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку унікальних відвідувачів сайту. Користувач вводить день і IPv4-адресу відвідувача; для кожного дня зберігати множину адрес. Реалізувати додавання відвідувань, перегляд і кількість унікальних адрес кожного дня. Додатково: перетин і різниця двох днів. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку унікальних відвідувачів сайту. Користувач вводить день і IPv4-адресу відвідувача; для кожного дня зберігати множину адрес. Реалізувати додавання відвідувань, перегляд і кількість унікальних адрес кожного дня. Додатково: перетин і різниця двох днів; унікальні адреси всього періоду і частота появи за днями. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 6. Турнірна таблиця
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення турнірної таблиці. Користувач вводить результат матчу: назви двох команд і їхні голи; перемога дає 3 очки, нічия – 1, поразка – 0. Реалізувати додавання матчів, перегляд результатів і таблицю очок команд. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення турнірної таблиці. Користувач вводить результат матчу: назви двох команд і їхні голи; перемога дає 3 очки, нічия – 1, поразка – 0. Реалізувати додавання матчів, перегляд результатів і таблицю очок команд. Додатково: різниця м’ячів і порядок очки/різниця/назва. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення турнірної таблиці. Користувач вводить результат матчу: назви двох команд і їхні голи; перемога дає 3 очки, нічия – 1, поразка – 0. Реалізувати додавання матчів, перегляд результатів і таблицю очок команд. Додатково: різниця м’ячів і порядок очки/різниця/назва; відхилення повторного матчу та перерахунок виправленого. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 7. Плейлист
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для керування плейлистом. Користувач вводить назву треку і тривалість у секундах; треки зберігати в MutableList. Реалізувати додавання треків, перегляд плейлиста і його загальну тривалість. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для керування плейлистом. Користувач вводить назву треку і тривалість у секундах; треки зберігати в MutableList. Реалізувати додавання треків, перегляд плейлиста і його загальну тривалість. Додатково: переміщення за індексами й пошук. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для керування плейлистом. Користувач вводить назву треку і тривалість у секундах; треки зберігати в MutableList. Реалізувати додавання треків, перегляд плейлиста і його загальну тривалість. Додатково: переміщення за індексами й пошук; перемішування із заданим seed і перевірка збереження мультимножини. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 8. Черга в поліклініці
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для моделювання електронної черги в поліклініці. Користувач вводить умовний номер талона; талони зберігати в черзі FIFO на ArrayDeque. Реалізувати додавання талонів, перегляд черги і виклик наступного талона. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для моделювання електронної черги в поліклініці. Користувач вводить умовний номер талона; талони зберігати в черзі FIFO на ArrayDeque. Реалізувати додавання талонів, перегляд черги і виклик наступного талона. Додатково: дві черги зі службовим пріоритетом без медичних висновків. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для моделювання електронної черги в поліклініці. Користувач вводить умовний номер талона; талони зберігати в черзі FIFO на ArrayDeque. Реалізувати додавання талонів, перегляд черги і виклик наступного талона. Додатково: дві черги зі службовим пріоритетом без медичних висновків; обслуговувати не більш як три пріоритетні поспіль за наявності звичайних. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 9. Розклад автобусів
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення розкладу автобусів. Користувач вводить маршрут, зупинку й час відправлення як хвилину доби 0..1439. Реалізувати додавання рейсів, перегляд і розклад заданої зупинки, упорядкований за часом. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення розкладу автобусів. Користувач вводить маршрут, зупинку й час відправлення як хвилину доби 0..1439. Реалізувати додавання рейсів, перегляд і розклад заданої зупинки, упорядкований за часом. Додатково: наступний рейс після заданого часу. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення розкладу автобусів. Користувач вводить маршрут, зупинку й час відправлення як хвилину доби 0..1439. Реалізувати додавання рейсів, перегляд і розклад заданої зупинки, упорядкований за часом. Додатково: наступний рейс після заданого часу; мінімальна різниця між рейсами на спільній зупинці. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 10. Бібліотечний каталог
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення бібліотечного каталогу. Користувач вводить id, назву, автора й жанри книги; книги зберігати в Map за id, жанри – у Set. Реалізувати додавання книг, перегляд каталогу і пошук книги за id. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення бібліотечного каталогу. Користувач вводить id, назву, автора й жанри книги; книги зберігати в Map за id, жанри – у Set. Реалізувати додавання книг, перегляд каталогу і пошук книги за id. Додатково: пошук автора та перетин жанрів. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення бібліотечного каталогу. Користувач вводить id, назву, автора й жанри книги; книги зберігати в Map за id, жанри – у Set. Реалізувати додавання книг, перегляд каталогу і пошук книги за id. Додатково: пошук автора та перетин жанрів; індекси авторів і жанрів з узгодженим видаленням книги. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 11. Рецепти
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення збірки рецептів. Користувач вводить назву рецепта і множину його інгредієнтів. Реалізувати додавання рецептів, перегляд і виведення інгредієнтів заданого рецепта. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення збірки рецептів. Користувач вводить назву рецепта і множину його інгредієнтів. Реалізувати додавання рецептів, перегляд і виведення інгредієнтів заданого рецепта. Додатково: доступні рецепти за наявними інгредієнтами. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення збірки рецептів. Користувач вводить назву рецепта і множину його інгредієнтів. Реалізувати додавання рецептів, перегляд і виведення інгредієнтів заданого рецепта. Додатково: доступні рецепти за наявними інгредієнтами; рецепти з не більш як двома відсутніми складниками. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 12. Зал кінотеатру
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку місць у залі кінотеатру. Користувач задає кількість рядів і місць у ряду 1..30 та вводить ряд і місце; стан місць зберігати в Array<BooleanArray>. Реалізувати позначення зайнятих місць, перегляд схеми залу і кількість вільних місць. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку місць у залі кінотеатру. Користувач задає кількість рядів і місць у ряду 1..30 та вводить ряд і місце; стан місць зберігати в Array<BooleanArray>. Реалізувати позначення зайнятих місць, перегляд схеми залу і кількість вільних місць. Додатково: бронювання й скасування без повторної зміни. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку місць у залі кінотеатру. Користувач задає кількість рядів і місць у ряду 1..30 та вводить ряд і місце; стан місць зберігати в Array<BooleanArray>. Реалізувати позначення зайнятих місць, перегляд схеми залу і кількість вільних місць. Додатково: бронювання й скасування без повторної зміни; пошук k суміжних вільних місць із мінімальним номером ряду. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 13. Частотний аналіз
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для частотного аналізу слів. Користувач вводить рядок слів через пробіли; частоти слів зберігати в Map. Реалізувати додавання рядків тексту, перегляд частот і виведення частоти заданого слова. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для частотного аналізу слів. Користувач вводить рядок слів через пробіли; частоти слів зберігати в Map. Реалізувати додавання рядків тексту, перегляд частот і виведення частоти заданого слова. Додатково: топ 10 за частотою спадно та словом. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для частотного аналізу слів. Користувач вводить рядок слів через пробіли; частоти слів зберігати в Map. Реалізувати додавання рядків тексту, перегляд частот і виведення частоти заданого слова. Додатково: топ 10 за частотою спадно та словом; порівняння двох текстів за спільними словами та різницею частот. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 14. Графік чергувань
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для складання графіка чергувань. Користувач вводить список імен і кількість днів 1..366. Реалізувати додавання імен, перегляд списку і графік, що вказує чергового на кожен день. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для складання графіка чергувань. Користувач вводить список імен і кількість днів 1..366. Реалізувати додавання імен, перегляд списку і графік, що вказує чергового на кожен день. Додатково: циклічний розподіл без повтору в одному дні. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для складання графіка чергувань. Користувач вводить список імен і кількість днів 1..366. Реалізувати додавання імен, перегляд списку і графік, що вказує чергового на кожен день. Додатково: циклічний розподіл без повтору в одному дні; пропуск недоступних осіб і явна відмова, якщо доступних немає. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 15. Лабіринт
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу лабіринту. Користувач вводить прямокутне поле із символів . (прохід) і # (стіна) та координати старту. Реалізувати введення поля, його перегляд, перевірку, що старт стоїть на проході, і кількість прохідних клітинок. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу лабіринту. Користувач вводить прямокутне поле із символів . (прохід) і # (стіна) та координати старту. Реалізувати введення поля, його перегляд, перевірку, що старт стоїть на проході, і кількість прохідних клітинок. Додатково: пошук до виходу BFS через ArrayDeque. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу лабіринту. Користувач вводить прямокутне поле із символів . (прохід) і # (стіна) та координати старту. Реалізувати введення поля, його перегляд, перевірку, що старт стоїть на проході, і кількість прохідних клітинок. Додатково: пошук до виходу BFS через ArrayDeque; відновлення найкоротшого шляху та випадок недосяжності. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 16. Курси валют
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення історії курсів валют. Користувач вводить код валюти, ISO-дату й додатний скінченний курс. Реалізувати додавання курсів, перегляд історії валюти за датами і курс валюти на задану дату. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення історії курсів валют. Користувач вводить код валюти, ISO-дату й додатний скінченний курс. Реалізувати додавання курсів, перегляд історії валюти за датами і курс валюти на задану дату. Додатково: min/max для кожної валюти. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення історії курсів валют. Користувач вводить код валюти, ISO-дату й додатний скінченний курс. Реалізувати додавання курсів, перегляд історії валюти за датами і курс валюти на задану дату. Додатково: min/max для кожної валюти; TreeMap історії та останній відомий курс не пізніше дати. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 17. Мережа друзів
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для моделювання мережі друзів. Користувач вводить пари різних імен, що є друзями; дружбу зберігати симетрично в Map<String,Set<String>>. Реалізувати додавання пар, перегляд мережі і список друзів заданої особи. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для моделювання мережі друзів. Користувач вводить пари різних імен, що є друзями; дружбу зберігати симетрично в Map<String,Set<String>>. Реалізувати додавання пар, перегляд мережі і список друзів заданої особи. Додатково: спільні друзі двох осіб. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для моделювання мережі друзів. Користувач вводить пари різних імен, що є друзями; дружбу зберігати симетрично в Map<String,Set<String>>. Реалізувати додавання пар, перегляд мережі і список друзів заданої особи. Додатково: спільні друзі двох осіб; пошук найкоротшого ланцюжка дружби без циклів обходу. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 18. Гра «Життя»
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для моделювання гри «Життя». Користувач вводить прямокутний масив клітин 0/1; клітини за межами поля вважати мертвими, без замикання країв. Реалізувати введення поля, його перегляд і кількість живих сусідів кожної клітини. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для моделювання гри «Життя». Користувач вводить прямокутний масив клітин 0/1; клітини за межами поля вважати мертвими, без замикання країв. Реалізувати введення поля, його перегляд і кількість живих сусідів кожної клітини. Додатково: наступне покоління B3/S23 у новому масиві. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для моделювання гри «Життя». Користувач вводить прямокутний масив клітин 0/1; клітини за межами поля вважати мертвими, без замикання країв. Реалізувати введення поля, його перегляд і кількість живих сусідів кожної клітини. Додатково: наступне покоління B3/S23 у новому масиві; k поколінь і виявлення повторного стану. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 19. Відвідування занять
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку відвідування занять. Користувач вводить список групи й множину присутніх на занятті. Реалізувати додавання списку й відміток, перегляд і кількість присутніх. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку відвідування занять. Користувач вводить список групи й множину присутніх на занятті. Реалізувати додавання списку й відміток, перегляд і кількість присутніх. Додатково: відсутні та невідомі імена. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку відвідування занять. Користувач вводить список групи й множину присутніх на занятті. Реалізувати додавання списку й відміток, перегляд і кількість присутніх. Додатково: відсутні та невідомі імена; частка відвідування кожного за кількома датами. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 20. Структура компанії
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення структури компанії. Користувач вводить назву підрозділу і його батьківський підрозділ або позначку кореня. Реалізувати додавання підрозділів, перегляд структури і список безпосередніх підрозділів заданого підрозділу. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення структури компанії. Користувач вводить назву підрозділу і його батьківський підрозділ або позначку кореня. Реалізувати додавання підрозділів, перегляд структури і список безпосередніх підрозділів заданого підрозділу. Додатково: обхід нащадків і глибина. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення структури компанії. Користувач вводить назву підрозділу і його батьківський підрозділ або позначку кореня. Реалізувати додавання підрозділів, перегляд структури і список безпосередніх підрозділів заданого підрозділу. Додатково: обхід нащадків і глибина; відхилення циклів і перенесення піддерева. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 21. Кошик інтернет-магазину
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для керування кошиком інтернет-магазину. Користувач вводить код товару, кількість 1..1000 і ціну в копійках. Реалізувати додавання товарів, перегляд кошика і вартість кожної позиції. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для керування кошиком інтернет-магазину. Користувач вводить код товару, кількість 1..1000 і ціну в копійках. Реалізувати додавання товарів, перегляд кошика і вартість кожної позиції. Додатково: додавання й вилучення з підсумком Long. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для керування кошиком інтернет-магазину. Користувач вводить код товару, кількість 1..1000 і ціну в копійках. Реалізувати додавання товарів, перегляд кошика і вартість кожної позиції. Додатково: додавання й вилучення з підсумком Long; об’єднання кошиків із відмовою суперечливих цін. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 22. Схема метро
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення схеми метро. Користувач вводить назву лінії і послідовність її станцій. Реалізувати додавання ліній, перегляд схеми і список ліній, що проходять через задану станцію. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення схеми метро. Користувач вводить назву лінії і послідовність її станцій. Реалізувати додавання ліній, перегляд схеми і список ліній, що проходять через задану станцію. Додатково: граф суміжних станцій та найменше число переїздів. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення схеми метро. Користувач вводить назву лінії і послідовність її станцій. Реалізувати додавання ліній, перегляд схеми і список ліній, що проходять через задану станцію. Додатково: граф суміжних станцій та найменше число переїздів; стан вершини станція/лінія та пошук мінімальних пересадок. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 23. Вибори
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для підрахунку голосів на виборах. Користувач вводить список кандидатів з ідентифікаторами, а потім голоси за ідентифікаторами кандидатів. Реалізувати додавання кандидатів і голосів, перегляд і кількість голосів кожного кандидата. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для підрахунку голосів на виборах. Користувач вводить список кандидатів з ідентифікаторами, а потім голоси за ідентифікаторами кандидатів. Реалізувати додавання кандидатів і голосів, перегляд і кількість голосів кожного кандидата. Додатково: частки й два лідери; нічию показати явно. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для підрахунку голосів на виборах. Користувач вводить список кандидатів з ідентифікаторами, а потім голоси за ідентифікаторами кандидатів. Реалізувати додавання кандидатів і голосів, перегляд і кількість голосів кожного кандидата. Додатково: частки й два лідери; нічию показати явно; перемога понад 50% дійсних голосів або всі претенденти на другу позицію. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 24. Хмарне сховище
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку файлів у хмарному сховищі. Користувач вводить умовний шлях файлу і його розмір у байтах типу Long. Реалізувати додавання файлів, перегляд і загальний обсяг сховища. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку файлів у хмарному сховищі. Користувач вводить умовний шлях файлу і його розмір у байтах типу Long. Реалізувати додавання файлів, перегляд і загальний обсяг сховища. Додатково: суми за безпосередніми теками. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку файлів у хмарному сховищі. Користувач вводить умовний шлях файлу і його розмір у байтах типу Long. Реалізувати додавання файлів, перегляд і загальний обсяг сховища. Додатково: суми за безпосередніми теками; суми всіх предків і детекція дубльованого повного шляху. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 25. Магічні квадрати
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для перевірки магічних квадратів. Користувач вводить квадратну матрицю цілих чисел. Реалізувати введення матриці, її перегляд і суми кожного рядка. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для перевірки магічних квадратів. Користувач вводить квадратну матрицю цілих чисел. Реалізувати введення матриці, її перегляд і суми кожного рядка. Додатково: перевірка однакових сум рядків, стовпців і діагоналей. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для перевірки магічних квадратів. Користувач вводить квадратну матрицю цілих чисел. Реалізувати введення матриці, її перегляд і суми кожного рядка. Додатково: перевірка однакових сум рядків, стовпців і діагоналей; генерація нормального квадрата непарного порядку 3..15 і перевірка 1..n². Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 26. Редактор тексту
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для текстового редактора з історією змін. Користувач вводить команди replace (замінити поточний текст новим) та undo; знімки тексту зберігати у двох стеках. Реалізувати виконання команд, перегляд поточного тексту і скасування останньої зміни. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для текстового редактора з історією змін. Користувач вводить команди replace (замінити поточний текст новим) та undo; знімки тексту зберігати у двох стеках. Реалізувати виконання команд, перегляд поточного тексту і скасування останньої зміни. Додатково: redo і очищення redo після нового replace. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для текстового редактора з історією змін. Користувач вводить команди replace (замінити поточний текст новим) та undo; знімки тексту зберігати у двох стеках. Реалізувати виконання команд, перегляд поточного тексту і скасування останньої зміни. Додатково: redo і очищення redo після нового replace; обмежена історія останніх 20 дій без зміни поточного стану. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 27. Спортзал
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку відвідувань спортзалу. Користувач вводить умовного клієнта і множину дат його відвідувань. Реалізувати додавання відвідувань, перегляд і кількість відвідувань кожного клієнта. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку відвідувань спортзалу. Користувач вводить умовного клієнта і множину дат його відвідувань. Реалізувати додавання відвідувань, перегляд і кількість відвідувань кожного клієнта. Додатково: спільні дати двох клієнтів. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку відвідувань спортзалу. Користувач вводить умовного клієнта і множину дат його відвідувань. Реалізувати додавання відвідувань, перегляд і кількість відвідувань кожного клієнта. Додатково: спільні дати двох клієнтів; абонемент із лімітом і відхилення повторного списання за день. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 28. Хімічні елементи
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення довідника хімічних елементів. Користувач вводить символ, назву, групу 1..18 і додатну атомну масу елемента. Реалізувати додавання елементів, перегляд довідника, упорядкованого за символом, і виведення елемента за символом. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення довідника хімічних елементів. Користувач вводить символ, назву, групу 1..18 і додатну атомну масу елемента. Реалізувати додавання елементів, перегляд довідника, упорядкованого за символом, і виведення елемента за символом. Додатково: пошук за символом і групою. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для ведення довідника хімічних елементів. Користувач вводить символ, назву, групу 1..18 і додатну атомну масу елемента. Реалізувати додавання елементів, перегляд довідника, упорядкованого за символом, і виведення елемента за символом. Додатково: пошук за символом і групою; діапазон мас і перевірка унікальності символів. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 29. Метеостанції
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку спостережень метеостанцій. Користувач вводить назву станції, ISO-дату і скінченну температуру. Реалізувати додавання спостережень, перегляд і середню температуру кожної станції. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку спостережень метеостанцій. Користувач вводить назву станції, ISO-дату і скінченну температуру. Реалізувати додавання спостережень, перегляд і середню температуру кожної станції. Додатково: TreeMap дат із min/max. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку спостережень метеостанцій. Користувач вводить назву станції, ISO-дату і скінченну температуру. Реалізувати додавання спостережень, перегляд і середню температуру кожної станції. Додатково: TreeMap дат із min/max; спільні дати двох станцій і різниця температур. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 30. Опитування
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для підрахунку результатів опитування. Користувач вводить умовного респондента і його відповідь A, B або C. Реалізувати додавання відповідей, перегляд і кількість кожної відповіді. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для підрахунку результатів опитування. Користувач вводить умовного респондента і його відповідь A, B або C. Реалізувати додавання відповідей, перегляд і кількість кожної відповіді. Додатково: незалежний знімок відповідей і частки. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для підрахунку результатів опитування. Користувач вводить умовного респондента і його відповідь A, B або C. Реалізувати додавання відповідей, перегляд і кількість кожної відповіді. Додатково: незалежний знімок відповідей і частки; історія знімків; довести, що нове голосування не змінює старий звіт. Визначити порядок звіту; перевірити порожні дані, дублікати й неправильні значення. Вивести результат або причину відмови. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Порядок виконання та захисту роботи
- Оберіть структуру для кожної частини даних і поясніть вибір.
- Визначте унікальні ключі, допустимі дублікати й порядок звіту.
- Реалізуйте введення, перевірку, предметні операції та виведення.
- Перевірте порожні дані, дублі, відсутній ключ і неправильний індекс.
- Покажіть, які результати є копіями, а які – живими поданнями.
- Подайте п’ять фактичних перевірок і оцінку складності головної операції.
- Збережіть код та README у локальному репозиторії.