7 декабря с 14:00 до 16:00 и 11 декабря с 20:00 до 22:00 (время московское) проходят четвертьфиналы Kotlin Challenge — соревнования с правилами, которые знакомы каждому участнику ACM ICPC. Еще можно успеть зарегистрироваться! Решения задач должны быть на языке Kotlin, новом языке программирования для платформы Java, разработанном компанией JetBrains. Задачи готовит жюри из НИУ ИТМО.
Это — первые отборочные туры соревнований, до сих пор были тренировки, результаты которых не шли в зачет. А теперь — все по-взрослому, и шанс выиграть в Kotlin Challenge будет только у тех, кто успеет зарегистрироваться до начала второго отборочного тура — т.е. до 19:59 11 декабря (время московское). В полуфинал пройдет по 100 лучших участников из каждого из двух четвертьфиналов. Всем, кто пройдет в полуфинал, гарантирована фирменная футболка Kotlin Challenge — свидетельство того, что решать олимпиадные задачи на новом языке вы точно умеете.
Решайте задачи, зовите друзей на соревнование, выигрывайте денежные призы и признание!
Расписание и прочую информацию, как всегда, можно посмотреть сайте соревнований: kotlin.jetbrains.org/challenge. Если вы обнаружили техническую проблему на сайте соревнования или у вас остались какие-то вопросы про язык Kotlin, соревнование или что-нибудь еще, будем рады ответить на ваши вопросы в группе вконтакте или по почте: [email protected]
Задачи станут доступными одновременно с началом четвертьфиналов здесь.
Удачи!
UPD Полуфинал состоится в субботу 15 февраля с 20:00 до 22:00
UPD Поздравляем 101 лучших участника первого четвертьфинала, которые уже прошли в полуфинал! Остальных приглашаем участвовать во втором четвертьфинале в среду вечером.
UPD В группе ВКонтакте выложены авторские решения и тесты задач первого четвертьфинала.
UPD2 Уважаемые участники! Хотим еще раз извиниться за технические проблемы с сайтом олимпиады во время пи-четвертьфинала. Как и планировалось, по его результатам 100 лучших проходят в полуфинал.
UPD2 Чтобы восстановить справедливость, мы решили провести еще один, сокращенный четвертьфинал для тех, кому не удалось успешно выступить из-за технических неполадок. Ориентировочно он состоится в субботу, 21 декабря, будет длиться час или полтора, в нем будет меньше задач, чем обычно. Полная информация будет объявлена в понедельник, 16 декабря.
Все-таки не понимаю в упор одну вещь: зачем организаторы изобрели велосипед и сделали свою тестирующую систему, при том крайне неудобную?
В предыдущих темах уже была куча жалоб по поводу юзабилити, от себя добавлю еще одну: хотелось бы, чтобы кнопки переключения контеста были полноценными ссылками. А то рука так и тянется к комбинации ПКМ + Открыть ссылку в новой вкладке, но в результате получается облом...
Тестирующая система используется проверенная :-)
Интерфейс постепенно правится и замечания исправляются.
Что касается переключения контеста — пока не подразумевается одновременное проведение нескольких контестов, поэтому открывать несколько наборов задач не нужно обычно. Хотя, в принципе, можно это исправить.
В Правилах соревнования сказано, что версия компилятора фиксируется за неделю до тура. На странице "Загрузить Kotlin" сейчас висит:
Значит ли это, что в четверть-финалах будет использоваться эта же версия?
Да, в четвертьфиналах будет использоваться та же версия. Новая — только к полуфиналу.
Текст будет обновлен.
Не могу отправлять решения в альфа-тренировку. Получаю сообщение "Ошибка при отправке файла. Попробуйте еще раз."
Аналогично, видимо готовят систему к 1/4?
Да, в группе во вконтакте мне ответили, что тренировка будет доступна после четвертьфинала.
Ошибка компиляции — это действительно ошибка компиляции, или что-то не работает?
На сайте выпилили возможность делать System.getProperty и никого не предупредили
(хотя после реджаджа это стало можно делать, судя по всему. http://kotlin-demo.jetbrains.com/ вот тут можно проверять, работает или нет)
Были проблемы с компиляцией в течении первых минут. Все решения уже перетестированы.
Теперь, если CE — это значит правда ошибка компиляции. Используйте ту же версию компилятора, что и на сервере: http://kotlin.jetbrains.org/challenge/downloads/
Получил ошибку компиляции, локально всё работает. Скачал котлин по ссылке, при попытке запустить что угодно через kotlin-jvm.bat получаю:
EXCEPTION: java.lang.NoClassDefFoundError: jet/Function0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at org.jetbrains.jet.preloading.ClassPreloadingUtils$1.findClass(ClassPreloadingUtils.java:100) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.jetbrains.jet.preloading.ClassPreloadingUtils$1.loadClass(ClassPreloadingUtils.java:79) at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.java:267) at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyzeAndGenerate(KotlinToJVMBytecodeCompiler.java:252) at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileBunchOfSources(KotlinToJVMBytecodeCompiler.java:187) at org.jetbrains.jet.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.java:142) at org.jetbrains.jet.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.java:48) at org.jetbrains.jet.cli.common.CLICompiler.exec(CLICompiler.java:147) at org.jetbrains.jet.cli.common.CLICompiler.exec(CLICompiler.java:133) at org.jetbrains.jet.cli.common.CLICompiler.exec(CLICompiler.java:57) at org.jetbrains.jet.cli.common.CLICompiler.doMainNoExit(CLICompiler.java:221) at org.jetbrains.jet.cli.common.CLICompiler.doMain(CLICompiler.java:212) at org.jetbrains.jet.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jetbrains.jet.preloading.Preloader.main(Preloader.java:67) Caused by: java.lang.ClassNotFoundException: jet.Function0 at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.jetbrains.jet.preloading.ClassPreloadingUtils$1.loadClass(ClassPreloadingUtils.java:84) ... 23 more
exec() finished with INTERNAL_ERROR return code
И первый человек прошедший в полуфинал делает это за 2:58. Дизбалансненько.
Да просто все забили. Я вообще не готовился, не учил Kotlin, писал так, как будто пишу на Java. Три задачи наговнокодил довольно легко. Получилось 22 место. Такими темпами и на финал попасть можно.
Судя по людям на верхушке таблицы (5 из 7 человек с фуллом — жабокодеры), ты не одинок.
В этом языке можно "говнокодить, как на С++"?) Надо начинать учить Java что-ли, а то я и с С++ не особо дружу, а сегодня было ощущение, будто гвозди отверткой заколачиваю:)
В Е заходит квадрат… Как можно было в задачу про звезды в тесты не добавить граф-звезду?=)
У тебя не квадрат, а правильное решение с запоминанием вообще-то :-)
И звезда есть в тестах.
Нет же! У меня решение за сумму по всем ребрам (количества смежных с какой-нибудь из вершин ребра вершин). Для графа, где все ребра имеют вид (1; i), я локально от своей программы ответа не дождался. Может в тесте со звездой n не 100000?
Какой-то странный спецэффект. Не прочитал правила, юзал последнюю версию котлина (0.6.1673), первые три задачи сдал без проблем. Четвертая локально работала, удаленно — Compilation Error. Скачал версию идеи и котлина, в которой на самом деле надо было писать контест, он мне действительно не скомпилил четвертую задачу с ошибкой Name shadowed: я сделал что-то вроде
Что интересно, в одной из первых трех задачах всплыл тот же compilation error с Name shadowed, хотя в проверяющую систему я их успешно сдал, там я делал так:
Это как-нибудь объясняется?
Вообще Name shadowed это не ошибка, а warning... А точно не было других ошибок при компиляции?
Ой, действительно warning, похоже, плагин котлина был новой версии использовался из новой идеи, я почему-то думал, что он из загруженной подгрузился. Тот, что должен быть, кажется, глючит как-то, но вроде проблема в том, что я юзал
0L
для конвертации нуля в лонговый, видимо, это недавно появилось.P.S. вообще интересно, тут написано "There're no "L"-tagged or otherwise tagged literals", но в последней версии котлина почему-то работает :)
Да, это появилось в четверг :)
Почему в задаче D на второй тест нельзя вывести 0 0 0? Ведь в любом случае вероятность захвата 100%.
Вопрос сюда же: как ответ проверяется на правильность? Надеюсь, в длинке?
Приносим извинения, была ошибка в чекере, которая не позволяла не всех использовать.
После исправления и перетестирования у 2 участников эта задача прошла с меньшей попытки. Поскольку оба участника с запасом проходят, это несильно повлияло на результаты.
Есть еще предложение — а почему бы пока компилятор находится в нестабильном состоянии не выводить при Compilation error еще и лог компиляции? И еще — хорошо бы в примеры добавить пример чтения из стандартного потока, потому что Kotlin ругается на System.in, а догадаться или нагуглить, что надо in обернуть в бектики довольно сложно.
BTW, У меня сегодня идея (скачанная за несколько часов до соревнования отсюда: http://kotlin.jetbrains.org/challenge/downloads/) Очень странно себя вела. Некоторые нажатия комбинаций клавиш(не ввод текста) обрабатываись несколько раз. В частности, Ctrl+X, Ctrl+V, Ctrl+W, Backspace.
Это у меня одного так?
Та же история. У меня то не компилилось и выдавало ошибку, что что-то там в котлиноплагине упало (отправлял репорты через идею), то подчёркивание ошибок замрёт и хоть что делай не исчезает.. ну, разве что перезапуск идеи. Ещё какие-то лаги были. А с другими комбинациями версий идеи и котлина так и не получилось скомпилиться. Каким-то чудом прям перед началом у меня таки стало всё компилиться и запускаться. Но лаги были.
У меня тоже так. Oracle JDK 1.7, Ubuntu 13.04. Все действия по хоткеям делаются два раза подряд. Особенно раздражает комментирование — комментируешь, сразу комментится и раскомментируется.
Может имеет смысл сделать оповещения более заметными? Надпись над задачами, что "решения перетестированы" так и осталась мною незамеченной до конца соревнования, а решения посылал несколько раз пока не зашло.
Не нашел, куда это можно написать на сайте соревнования, напишу сюда. В "Моем профиле" индекс, похоже, проверяется при сохранении, чтобы там были только числа. Я сейчас в Англии живу, тут и буквы, и пробел в индексе есть. Соответсвенно мой индекс при сохранении просто стерся, а сайт ничего не сказал.
Меж тем заработало сохранение почтовых индексов с буквами и пробелами.
Долго не мог понять, почему у меня по это ссылке http://kotlin.jetbrains.org/challenge/people/#?start=1 одни минусы и таблица пустая. Пока не сделал Ctrl+R. Видимо было изменено что-то в стилях или скриптах. К таким ресурсам неплохо бы ?hash=... добавлять, или ?v=...
В расписании написано, что полуфинал состоится в феврале 2014 года, а точная дата будет известна до 00:00 7.12.2013.
Так расскажите же, когда полуфинал.
По предварительной информации, полуфинал состоится вечером 15 февраля. Об этом мы дополнительно объявим в рассылке и в группе в контакте.
Еще есть забавная бага в таблице с рейтингом — там не видно участников на 51, 101, 151, и т. д. позициях. Первая страница заканчивается на 50-ом номере, вторая начинается на 52-ом. Далее то же самое.
Я правильно понимаю, что на текущий момент нельзя сдавать задачки в бету и лямбда тренировки?
Задачи бета-тренировки доступны в альфа-тренировке. Возможно, через некоторое время добавим лямбда-четвертьфинал и пи-четвертьфинал.
А есть возможность просто выложить тесты от лямбда-четвертьфинала?
Да, тоже есть :)
Но не сегодня :(
Кстати, а кто-нибудь заметил, что Kotlin — это код НАТО для определенных военных кораблей СССР? http://en.wikipedia.org/wiki/Kotlin-class_destroyer
Вообще это остров в Финском заливе...
Одно другому не мешает :)
Кажется, что эту ссылку http://kotlin.jetbrains.org/challenge/introduction/ можно было и на более видное место запостить, чем в самом низу страницы с правилами. Нашел ее только через гугл.
Кстати, еще бы не помешал шаблон для ввода/вывода — очень неприятно возиться с этими InputStreamReader, которые кидают всякие исключения, особенно тем, кто плохо знаком с Java.
Шаблон ввода-вывода можно найти в архиве авторских решений (в группе ВКонтакте, в этом посте наверху и вообще здесь
Спасибо.
А можно как-то сделать, чтобы среда не ругалась на то, что у меня в каждом файле есть функция main?
я просто комментирую весь предыдущий файл через Ctrl+A Ctrl+Shift+/ UPD: Здесь есть обсуждение
Можно еще проще: ПКМ + Mark as Plain Text на предыдущем файле.
я добавляю неюзаемые в данный момент файлы в package
Попытался зарегистрироваться. После входа в JetBrains аккаунт перенаправляет на станицу http://kotlin.jetbrains.org/challenge/profile/index.jsp, которая выдаёт HTTP Status 500. Если удалить куки и войти по-новой — всё повторяется.
Действительно есть ошибка. Она будет исправлена как можно скорее.
Напоминаю, что регистрация будет доступна вплоть до начала четвертьфинала.
Должно быть исправлено, проверьте, пожалуйста.
Замечательно исправили:
Мы работаем над исправлением проблемы. Приносим извинения.
Можно участвовать внеконкурсна, если проходил первого раунда?
К сожалению, такой возможности не предусмотрено.
Все лежит (((
Мы работаем над исправлением проблемы. Приносим извинения.
Что за безобразие происходит?
Хоть бы сделали на КФ объявление, сколько нам ждать стабильной работы системы.
У меня уже 2 задачи написаны, а как их отправить? Может по email, как это практикуется на snarknews?:)
Сложно оценить сколько времени уйдет на исправление ошибки.
Как только — так сразу. Тур будет продлен.
Какой смысл был начинать тур.
Дисбалансненько, некоторые даже условий не знают)
Условия: https://www.dropbox.com/s/5qk18fr36nd9o6x/Kotlin%20Challenge%20%E2%80%93%20%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8.pdf
Эм, а где вы условия взяли? Поделились бы хоть :)
К сожалению, тур, видимо, будет отменен и перенесен на другой день.
Правильно ли я понимаю, что в связи с изменениями, которые сейчас выкатывали, участники этого тура уже будут в других условиях, нежели участники первого (изменения в тестирующей системе, интерфесе, компиляторе) ?
UPD Система заработала, тур идет. Кто хорошо напишет — попадет в полуфинал.
Будет ли еще один тур для тех, кто уже забил на этот полуфинал? Спасибо.
Эта идея обсуждается.
А тем временем сайт ожил, и кто-то уже сдал 2 задачи.
Имеет ли смысл что-нибудь сдавать сейчас в систему? Раунд полностью "нерейтинговый"?
UPD а, все, похоже имеет
Пи-четвертьфинал продлен до 23:00
Как смотреть результаты, если ты не участник?
результаты
спасибо
Может я конечно чего не понимаю, но написать сначала, что контест перенесен, а потом его продолжить — это полный п*здец! Ребят, если будете делать что-то подобное — не повторяйте пожалуйста такого ляпа. Перенести контест — это меньшее из зол.
С первым предложением соглашусь полностью.
А вот от столь категоричных советов стоило бы воздержаться. Дело в том, что подготовка задач — это тяжелый труд, поэтому, если задачи были засвечены, авторы контеста обязательно будут стремиться во что бы то ни стало не отменять контест. Тем более, четвертьфиналы нужны только для отсеивания совсем неспособных, они ничего принципиального не решают.
Ну тогда и вы от категоричных заявлений, типа "совсем не способных", так же воздержитесь. За первой сотней оказались люди, которые на CF имеет приличный рейтинг. К авторам претензий почти нет, основные претензии, как можно заметить, к организации.
Вы путаете понятие "четвертьфиналы нужны для отсеивания совсем неспособных" с понятием "четвертьфиналы отсеяли только совсем неспособных" :).
I-juice — 101 место
izban — 106 место
Ты понимаешь, что твой пост можно интерпретировать примерно так: "Ну как так, из-за проблем с вашим сайтом два крутых олимпиадника не смогли примерно за час сдать ничего, кроме как двух халявок и именно по этому не прошли в полуфинал". Самому не смешно?
Я солидарен со всеми, что получилось не честно, но опускаться до защиты людей, которые должны были вне зависимости от доступного времени обойти всяких "зелёных"...
Я бы на месте организаторов пропустил лишних 12 человек в следующий раунд — и все остались бы довольны.
Не факт, что только они пострадали. Могут быть люди, которые, как уже писалось ранее, посмотрели что не работает и забили на участие. По-хорошему, нужен ещё один ЧФ.
По мне — так это идеальный вариант. А π-четвертьфинал объявить нерейтинговым)
Не, объявлять нерейтинговым — явно плохой вариант. Было же заявление от организатора "Кто хорошо напишет — попадет в полуфинал.".
В этом объявлении не были указаны формальные критерии "хорошо". Возможно, все, что меньше 5 задач — это плохо.
Уже столько времени прошло, а я до сих пор не вижу где-то на видном месте четкого и понятного объявления "эти проходят, эти не проходят, еще один раунд будет/не будет".
В общей таблице результатов можно найти участника и если напротив его есть галочка в столбце "Полуфинал" — значит проходит (вроде как так).
Действительно, спасибо. Хотя потом может оказаться, что у ребят, которые запускают контест при неработающем сайте, галочки проставились автоматически, и их пока забыли снять:) Но сойдет.
Нам очень жаль, что так получилось. Пока мы можем точно сказать, что 100 лучших участников пи-четвертьфинала проходят в полуфинал. Более подробная информация будет опубликована сегодня вечером в этом посте и в группе вконтакте.
Мне кажется хорошей идея провести доп. раунд, отобрав им дополнительных 50 участников. Просто в полуфинале поучаствует не ~200, а ~250.
Идею мероприятия считаю очень крутой – с интересом познакомился с Kotlin. А вот впечатления от участия сегодня остались так себе. Причем по всем трем фронтам (основное):
Kotlin. Не знаю как у других участников, но рекомендованная версия IDEA+Kotlin работала плохо. Подсветка ошибок синтаксиса постоянно отставала от набора текста и всё время показывала что-то неадекватное. Это привнесло сильный дискомфорт.
Инфраструктура. Сайт упал, подняли примерно через полчаса после старта. Каких-либо объявлений на сайте об инциденте на сайте сделано не было. Только здесь и в ВК.
Задачи. Были правки в трех из пяти задач (на странице указаны почему-то две). В задаче C, видимо, не менее чем трижды правили условие.
Сложно написать что-то на сайте, когда он лежит :)
Я имею ввиду после. Ну и, кстати, на заглушке тоже можно что-то предметное написать, но это, наверное, некогда — все силы на поднятие сайта.
С задачей С получилось действительно неприятно, признаем.
При подготовке задачи никто не заметил такой неясности, а доп.решения были написаны без вопросов. А во время тура, к сожалению, из-за проблем с сайтом, не удалось адекватно исправить сразу.
Подборка задач тоже весёлая: первые 3 задачи ни о чём, 4ая — "напишите дерево отрезков на Kotlin", 5ая — "научитесь использовать джавовскую стандартную библиотеку из Kotlin'а" (java.awt.geom).
По поводу плохо работающей Idea — +1. Я решил, что это из-за связки Linux+OpenJDK, но раз у других были те же проблемы — видимо, там что-то не так по существу.
Если ограничить знания языка строками, одномерными массивами, интами, if-else и for, то 4ая от безысходности превращается в "напишите бинарный поиск".
Есть какая-то легкая рабочая альтернатива этой IDEA? Нервирует то, как дико она грузит слабую машину, а пересаживаться на время на более сильное железо из-за одного контеста лень, да и неудобно.
Лёгкая рабочая альтернатива любой IDE — это vim ;)
А вообще Idea очень удобная (по крайней мере, для джавы) и вполне работает на умеренно слабом железе. Можно попробовать покрутить настройки вроде -Xmx, чтобы соответствовало реальной памяти машины и не swap'илось.
Linux+Oracle JDKv7+IDEA полет нормальный
Дорешивать куда-то есть?
А по какой причине сетка чемпионата настолько разрежена? Кажется, было бы значительно интересней поучаствовать в более сжатые сроки. Вроде как забываешь совсем о мероприятии между турами, теряется контекст и, частично, мотивация.
Эй, не надо ничего сжимать, язык выучить не успею)
Возможно имелся ввиду педагогический эффект типа "повторение — мать учения". Подучили язык котлин, порешали альфа тренировку, забыли язык котлин, через пару недель снова вспомнили, порешали четвертьфинал, забыли, через месяц еще вспомнили, полуфинал, ну и так далее. А если б все сразу, то порешали, забыли и все.
Уважаемые участники! Хотим еще раз извиниться за технические проблемы с сайтом олимпиады во время пи-четвертьфинала. Тех, кто вошел в 100 лучших, мы поздравляем с выходом в полуфинал.
Для всех остальных, кому не удалось успешно выступить из-за технических неполадок, мы решили провести еще один, сокращенный четвертьфинал, чтобы восстановить справедливость. Ориентировочно он состоится в субботу, 21 декабря, будет длиться час или полтора, в нем будет меньше задач, чем обычно.
Полная информация будет объявлена в понедельник, 16 декабря.
Здравствуйте, почему-то не работает регистрация: после заполнения формы вся информация сбрасывается.
Регистрация закрылась, согласно правилам, перед началом второго четвертьфинала.
В ближайшую субботу, 21 декабря, с 20:00 до 21:30 по московскому времени, пройдет ε-четвертьфинал. По его результатам в полуфинал пройдут 20 лучших участников, решивших хотя бы одну из 3 задач.
Участвовать могут все желающие, не ставшие полуфиналистами по результатам предыдущих четвертьфиналов. Регистрация открыта, так что не забывайте звать своих друзей, которые любят футболки и денежные призы!
Ну вот зачем рассылать письмо с 220 адресами сильных участников на всех? Именно для таких случаев и изобрели bcc.
JetBrains Privacy Policy
Use of E-mail Addresses
If you choose to give us your e-mail address, we will communicate with you via e-mail. We will not share your e-mail address with others outside JetBrains and its approved contractors and resellers.
Yeah, right...
Ну, по крайней мере не номер паспорта, уже хорошо :)
Как насчет добавить Kotlin на CF?