Задача J. Поместье Блэкмур

Автор:ChatGPT   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  

Условие

Нэнси Дрю - знаменитая девушка-детектив, приехала в старинное поместье Блэкмур, где во время ночной экскурсии начали происходить странные происшествия: в комнатах появлялись маски, тайные знаки, погасшие свечи и другие подозрительные предметы. У Нэнси есть журнал перемещений гостей по комнатам, список вещей, которые были у каждого подозреваемого, и список зафиксированных происшествий.

Нэнси считает, что подозреваемый мог устроить происшествие, если одновременно выполняются два условия:

Если один и тот же подозреваемый попадает под одно происшествие несколькими записями журнала, это происшествие всё равно считается только один раз.

База данных имеет следующую структуру:


CREATE TABLE IF NOT EXISTS Suspects (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL
);

CREATE TABLE IF NOT EXISTS SuspectItems (
    suspect_id INTEGER REFERENCES Suspects(id),
    item TEXT NOT NULL,
    PRIMARY KEY (suspect_id, item)
);

CREATE TABLE IF NOT EXISTS Incidents (
    id INTEGER PRIMARY KEY,
    room TEXT NOT NULL,
    incident_time TEXT NOT NULL,
    required_item TEXT NOT NULL,
    importance INTEGER NOT NULL
);

CREATE TABLE IF NOT EXISTS RoomLog (
    suspect_id INTEGER REFERENCES Suspects(id),
    room TEXT NOT NULL,
    entered_at TEXT NOT NULL,
    left_at TEXT NOT NULL
);

Требуется составить SQL-запрос, который найдёт наиболее подозрительных людей. Для каждого подозреваемого нужно посчитать:

В ответ нужно вывести только тех подозреваемых, у кого значение covered_incidents максимально. Если таких подозреваемых несколько, среди них нужно оставить только тех, у кого максимально значение suspicion_score.

Результатом выполнения запроса должен быть список кортежей (suspect_name, covered_incidents, suspicion_score), отсортированный по возрастанию suspect_name.

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Формат входного файла

Пример тестовой БД.

Ограничения

Предполагается, что для работы с базой данных используется SQLite3. Значения времени хранятся как строки в формате YYYY-MM-DD HH:MM.


0.075s 0.011s 20