1. Підпослідовність
Максимальна оцінка: 40 балів
Обмеження на час: 0,15 сек.
Обмеження на пам’ять: 4 MБ
Вхідний файл: subseq.in
Вихідний файл: subseq.out
Програма: subseq.*
Завдання
Створити програму для обчислення довжини найдовшої спільної підпослідовності двох послідовностей {xj}kj = 1 і {yj}lj = 1.
Вхідні дані
Файл містить у вказаному порядку невід'ємні цілі числа
k, x1, x2, …, xk,
l, y1, y2, …, yl,
де k + l < 16 000, а члени послідовностей менші за 65 432.
Вихідні дані
Файл має міститти лише шукану довжину найдовшої спільної підпослідовності.
Приклад
subseq.in | subseq.out |
---|---|
5 1 2 3 4 5 4 1 3 5 7 | 3 |
2. Сiм'я
Максимальна оцінка: 92 балів
Обмеження на час: 0,15 сек.
Обмеження на пам’ять: 4 MБ
Вхідний файл: family.in
Вихідний файл: family.out
Програма: family.*
Завдання
Створiть програму, яка визначає ступiнь родичiвства чи свояцтва.
Вхідні дані
Перші два рядки файлу мiстять по одному iменi двох рiзних персонажiв.
Усi наступні рядки файлу мають такий вигляд:
Родовий відмінок іменників в українській мові утворюють:
у I-iй вiдмiнi замiною закiнчень -а, -я на -и, -ї;
у II-iй вiдмiнi додаванням закiнчення -a, якщо iменник закiнчується на приголосний (врахуйте йотування пiсля й i виключення Ігоря), або змiною закiнчення -о на -а.
Вхiднi данi не мiстять iмен з III-ої вiдмiни й iмен з II вiдмiни, якi закiнчуються на м'який знак. Імена складаються з одного слова. Розрiзняються персонажi з однаковими iменами, якщо цi iмена записано рiзними за висотою лiтерами (великими чи малими). Імена мiстять не бiльше 20 лiтер. Кiлькiсть персонажiв не перевищує 30.
Вихідні дані
Файл повинен мати такий вигляд:
family.in | family.out |
---|---|
Борис Олександр Надія - дружина Бориса Олександр - син Надії |
Борис - батько Олександра |
Зауваження щодо кодування літер кирилиці: використовувати кодову таблицю cp1251. Якщо є сумніви, код програми і вміст тестових файлів потрібно набрати/проглянути, використовуючи Блокнот (Notepad).