Автор: | А. Быков | Ограничение времени: | 1 сек | |
Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log | |||
Максимальный балл: | 1 |
Правительство Демократического Государства (ДГ) начало специальную военную операцию против некоторого Тоталитарного Ближне-восточного Государства (ТБГ). В рамках этой операции предусмотрено освобождение ТБГ от пагубного нефтяного ресурса. У ДГ есть информация о нахождении нефтяных месторождений, которая получена от двойного агента. Информация хранится в базе данных.
Таблица Locations хранит информацию о нефтяных объектах: расположение (координаты) в километрах, силы противника (численность войск). Таблица Pumps связана с таблицей Locations и хранит информацию о нефтяных насосах (добыча баррелей в неделю).
Десантный отряд армии ДГ высаживается в точке с координатами x = 0, y = 0. Командир отряда приказал найти ближайшие месторождения (не более 300км по прямой), где войск противника будет меньше 500, а объем добычи более 800 баррелей/неделю.
CREATE TABLE Locations(
id INTEGER PRIMARY KEY AUTOINCREMENT,
x INTEGER NOT NULL,
y INTEGER NOT NULL,
forces INTEGER NOT NULL,
pump_id INTEGER,
FOREIGN KEY (pump_id) REFERENCES Pumps(id)
);
CREATE TABLE Pumps(
id INTEGER PRIMARY KEY AUTOINCREMENT,
amount INTEGER NOT NULL
);
Схема БД в UML-нотации:
Запрос должен вернуть дистанцию до месторождения, кол-во войск и объем добычи. Отсортировать по возрастанию дистанции. Дистанцию округлить до целых по правилам математического округления.
Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Предполагается, что для работы с базой данных используется SQLite3.