Турнир проходил в первый день Soft-Парада 24 апреля в выставочном центре «Сибирь».
Всего через сайт было зарегистрировано 28 человек, реально участников было немного меньше, до финала продержалось всего 15 человек, из них 11 человек в результате набрало более ноля баллов.
Участники выбрали такие языки программирования:
- C# — 5 человек;
- Delphi — 5 человек;
- PHP — 4 человека;
- Java — 1 человек.
И следующие СУБД:
- MySQL — 6;
- MS SQL Server — 5;
- MS Access — 2.
Победители
Участники, набравшие болеее трех баллов:
Место | Участник | Баллы | Организация | Язык, СУБД |
---|---|---|---|---|
1 место | Лучинин Михаил Олегович | 19 | Гимназия № 11 | PHP, MySQL |
2 место | Лапаев Денис Викторович | 13 | ИМ СФУ | PHP, MySQL |
3 место | Савченко Георгий Викторович | 11 | ИКИТ СФУ | C#, MS SQL Server |
4 место | Кудашов Николай Евгеньевич | 10,5 | ИМ СФУ, 2КБ | C#, MySQL |
5-6 место | Старолетов Сергей Михайлович | 8 | АлтГТУ | Java, MySQL |
5-6 место | Шушерин Виталий Викторович | 8 | ИКИТ СФУ | PHP, MySQL |
7 место | Цветцих Денис Валерьевич | 6,5 | ИКИТ СФУ | C#, MS SQL Server |
8 место | Цветцих Андрей Валерьевич | 6 | ИКИТ СФУ | C#, MS SQL Server |
Условие задачи
Луноход еженедельно исследует участок Луны XxY метров (X, Y <= 200) и сохраняет данные в файлы moonN.txt, где N — номер недели (N <= 30). Для каждого квадратного метра на каждую неделю луноход определяет следующую информацию: температура, плотность грунта, фотография (JPEG, может отсутствовать). Структура файла:x;y;температура;плотность;путь_к_фото x;y;температура;плотность;путь_к_фото и т. д. для каждого квадратного метраОдна строка файла соответствует одному квадратному метру участка с координатами (x, y). Размеры участка определяются по максимальным значениям x и y (размеры для всех недель одинаковы, нумерация координат с 1). Температура и плотность округлены до целых значений. Путь к фотографиям задан относительно каталога с исходными файлами (например, photos/image1.jpg). Разработать программу со следующим функционалом:
- Импорт исходных данных из файлов в СУБД (можно выполнить в виде отдельной программы). Ранее загруженные данные при импорте должны удаляться. 3 балла
- Выборка данных и отображение результатов в табличном виде. Фильтры: неделя, координата x, координата y. Если какой-то параметр не указан пользователем, то выводить данные для всех возможных значений поля (указывается, по крайней мере, 1 параметр). Сортировка: по возрастанию значения выражения (неделя * 1000000 + x * 1000 + y). Выводить максимум 100 первых результатов, строки таблицы нумеровать. Параметры для вывода: неделя, x, y, температура, плотность грунта, ссылка (кнопка) для отображения фотографии. 4 балла, время 10 сек
- Определить наименьшую температуру, которая зафиксирована на указанной пользователем неделе. Определить количество кв. метров участка с этой температурой. 1 балл, время 10 сек
- Луноход изредка даёт сбой и выдает одну и ту же фотографию для разных участков (имена файлов при этом разные). Найти все такие дублирующиеся фотографии. 5 баллов, время 10 сек
- Найти наиболее подходящий участок для создания подземной базы на Луне размером 10x10 м. Средняя плотность грунта участка для базы должна быть наиболее близкой к заданной пользователем. При расчетах использовать усредненные значения плотности за все недели. Если найдено несколько таких участков, то вывести любой из них. 6 баллов, время 10 сек
- Вывести карту температур в графическом виде на заданную пользователем неделю. Каждому пикселю соответствует один метр участка. Цвета пикселей меняются от синего (самая низкая температура) до красного (самая высокая температура). Красная и синяя компоненты цветов меняются линейно в диапазоне (0, 255). 6 баллов, время 10 сек
Тесты
Исходные данные для тестирования: sp2009_turnir_data.zip (19 Мб). Тесты (для участников и жюри): sp2009_turnir_tests.doc (350 кб)Вариант решения
Вариант решения на PHP с использованием СУБД MySQL:
- sp2009_turnir_solution.zip (5 кб)