| Автор: | Курбатов А.Н. | Ограничение времени: | 1 сек | |
| Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
| Выходной файл: | test.log |
До запуска нового грандиозного шоу Мистера Биста «Остров на выживание» осталось совсем немного времени. Сценаристы и продюсеры уже отобрали идеальныx кандидатов, прошедших серию предварительных испытаний.
Однако в результате технического сбоя на главном сервере таблица с финальным списком участников была безвозвратно удалена. К счастью, данные о претендентах и логи прохождения испытаний в таблицах candidates и activity_logs полностью уцелели.
Вам, как главному дата-аналитику команды, поручено срочно восстановить точный список участников. Мистер Бист лично утвердил жесткий алгоритм отбора:
1. Критерий прогресса: В шоу могут попасть только те кандидаты, которые успешно завершили все 3 этапа испытаний, причем их результаты строго росли от этапа к этапу (балл за 2-й этап должен быть строго выше, чем за 1-й, а балл за 3-й — строго выше, чем за 2-й).
2. Ограничение количества участников: Шоу международное, поэтому от одной страны может поехать не более 3 человек. В квоту попадают участники с наибольшим суммарным количеством баллов за все 3 этапа.
3. Разрешение ничьих: Если у кандидатов из одной страны совпадает общая сумма баллов, приоритет отдается тому, кто потратил суммарно меньше времени duration_seconds на прохождение всех испытаний. Если совпадает и время, выбор делается в пользу кандидата с меньшим candidate_id.
CREATE TABLE candidates (
candidate_id INTEGER PRIMARY KEY AUTOINCREMENT,
full_name TEXT NOT NULL,
country TEXT NOT NULL,
age INTEGER NOT NULL
);
CREATE TABLE activity_logs (
log_id INTEGER PRIMARY KEY AUTOINCREMENT,
candidate_id INTEGER NOT NULL,
stage_number INTEGER NOT NULL CHECK (stage_number BETWEEN 1 AND 3),
score INTEGER NOT NULL CHECK (score BETWEEN 0 AND 100),
duration_seconds INTEGER NOT NULL CHECK (duration_seconds > 0),
FOREIGN KEY (candidate_id) REFERENCES candidates(candidate_id)
);
Схема БД в UML-нотации:
Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Предполагается, что для работы с базой данных используется SQLite3.