Для тех кто не совсем в теме
Спешу поздравить всех – не так давно прошел очередной ICFP Contest, в котором мы очередной раз учавстовали. Для тех, кто еще не знает, в двух словах – это международное сореврнование для людей, обладающих даром программирования ;) Так, в этом году в этом соревновании более-менее активно учавствовало около 200 команд.
Как обычно соревнование проходило три дня. Команды, которые отослали решения в первые 24 часа, учитываются в т.н. lighting round’e. Все-все хватит ;) Правила и условие задачи можно спокойно прочитать в интернете.
Участники
В этом году в нашей команде было всего два человека – это Я (tt.kilew) Павел Тайкало, и Роман Мазур. Кроме нас, время от времени, подключался Александр Тищенко (amenaphes), и Павел Башмаков (pbashmakov).
Поиски подсказок и планы
Хотя в этом году подсказок не было выложено в интернета, как это часто бывало в предыдущих годах, я выделю одну предложение для этой фазы, потому что мы с Ромой, наверное, за месяц до начала соревнования более-менее регулярно просматривали страницу организаторов в поисках подсказок. Правда, все попытки найти хоть что-то оказались напрасными. Ну и ладно, в любом случае, они не особо помогали и в прошлых годах.
Ну и еще немного о подготовке. Буквально за несколько часов до начала, в репозитории был уже закоммичен код следующего плана:
package com.stanfy.icfp10;
public class ICFPTaskSolver{
public static void main(String[] args) {
ICFPTaskSolver icfpTaskSolver = new ICFPTaskSolver();
icfpTaskSolver.initialize();
icfpTaskSolver.makeICFPTask();
icfpTaskSolver.submitICFPTask();
icfpTaskSolver.profit();
}
public void initialize() {
System.out.println("Initialized");
}
public void makeICFPTask() {
System.out.println("ICFP Task Started");
}
public void submitICFPTask() {
System.out.println("ICFP Task submitted");
}
public void profit() {
System.out.println("Profit");
}
}
Как оказалось, такой план, был не только у нас.
Начало непонимания
15:00(Дальше все время по локальному киевскому +3:00 GMT). Сервер, как ни странно, выдержал первую атаку ICFP-шеров. И уже через минуту мы уже вгрызались в полученное нами задание.
Статья полностью »
Первую часть можно прочитать тут.
28.06.09 (09:00:16) Воскресенье(2й день)
То, что для одних – выходной, для других – день рабочий. Впрочем, Участие в ICFP – это дело добровольное, как оказалось, поэтому в этот день Саша не пришел нам помогать – видать, ему хотелось заданий вроде 2005-2007 годов выпуска. Впрочем. никто его винить не стал ;) Мне и самому задача показалась скучноватой, но раз дело начато – надо его достойно завершить.
Как догнать спутник, который находится рядом стобой на той же орбите мы не знали, однако зная периоды обращения спутников вокруг земли, можно было посчитать, сколько надо подождать, перед тем, как делать переход на другую орбиту. Причем время перехода с одной орбиты мы уже считали довольно точно. Задача мы решали следующим образом:
- Проверяем разницу в углах между собой и спутником
- Считаем, за какое время мы можем эту разницу “догнать”
- Вычитаем из этого времени время перехода с орбиты на орбиту
- Стартуем в нужное время.
Для начала, тем, кто не знаком, с тем, что такое IFCP Contest – прошу ознакомиться. Если, все же, лень, то это ежегодное соревнование контест для программистов со всеого мира. Одной из идей контеста было привлечение интереса к функиональным языкам программирования. Во всяком случае, без него, я бы, наверное, не так скоро узнал о таких вещах как Haskell. В свое время, я пытался разобраться с Prologom – достаточно хорошо выворачивает мозг. Хаскелл – тоже. ;) Довольно приятно осознавать, что научился мыслить немного по-другому.
Да. Отвлекся ;)
За много дней до начала
То, что такое ICFP, я знал уже не первый год, но мне все никак не получалось в нем поучавствовать, по разным причинам. Приятным исключением был прошлый год, когда была задача про управление марсоходом. К ICFP Contestу 2009 я готовился заранее – собирал команду, предупреждал всех за месяц. часто посещал http://icfpcontest.org, и следил за каждым изменением информации о нем. Так что, в моем случае, не получилось так, что ICFP свалился как снег на голову – все было распланировано заранее. Статья полностью »












