Автор: | А. Баранов | Ограничение времени: | 1 сек | |
Входной файл: | test.db | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log |
Молодой программист Вася прибыл на международную IT-конференцию и почти сразу же озаботился следующей проблемой.
График мероприятий конференции хранится в БД.
Основу такой БД составляет таблица EVENTS
, имеющая следующий вид:
ROWI INTEGER PRIMARY KEY AUTOINCREMENT,
HEAD DATE NOT NULL CHECK (HEAD < TAIL), -- начало мероприятия
TAIL DATE NOT NULL -- конец мероприятия
и таблица KWORDS
, в которой каждому мероприятию ставится в соответствие набор ключевых слов.
EVENT INTEGER REFERENCES EVENTS(ROWI),
WORD INTEGER NOT NULL,
PRIMARY KEY (EVENT, WORD)
Вася хочет посетить как можно большее число мероприятий, которые не перекрываются по времени.
При этом его интересуют только те мероприятия, в описании которых встречаются ключевые слова из заданного списка.
Напишите SQL-запрос с параметром, выполняющий выборку таких мероприятий.
В качестве ответа нужно вывести таблицу, состоящую из одного столбца,
который будет содержать номера выбранных мероприятий, отсортированных по времени их начала.
Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Вместо списка ключевых слов в тексте запроса должен присутствовать символ (:words)
.
Полагается, что для работы с базой данных используется SQLite3.
Значения типа DATE
задаются в виде строк, имеющих следующий формат: YYYY-MM-DD HH:MM