Добрый день.
Финал чемпионата мира ACM-ICPC в самом разгар. Совсем недавно завершилась церемония открытия. За эти дни директорат поделился некоторыми новостями.
Напомню, что этот сезон (2016-2017) последний, когда генеральным спонсором чемпионата является компания IBM. 20 лет IBM поддерживала ACM-ICPC, вкладывая миллионы долларов ежегодно. Спасибо, IBM! В настоящий момент активно прорабатывается модель, когда будет не один генеральный спонсор, а будет фонд в котором будут участвовать несколько компаний. На открытии был упомянут Sport Programming Foundation — полагаю, этот фонд и будет основным для будущих сезонов проведений чемпионата. Однако это еще не близкие планы.
Было анонсировано, что ближайшие три года генеральным спонсором ACM-ICPC будет компания JetBrains! Это потрясающая новость. Особенно приятно, что это фактически российская компания, а её исполнительный директор Максим Шафиров тренировал команду СПбГУ, ставшую чемпионом мира в 2000-м году! Уверен, как приятный бонус нас будут ждать замечательные среды разработки от JetBrains в будущих финалах чемпионата.
Происходит реформа устройства отборочных этапов чемпионата. Например, теперь уже наш региональный контест (NEERC) не является частью европейских чемпионатов, а составляет отдельную лигу Northern Eurasia. Вообще, были выделены 8 лиг (читай, супер-регионов): Европа, северная Евразия, северная Америка, латинская и южная Америка, две лиги в Азии, Африка и, наверное, Австралия и Океания. Планируется, что в каждой лиге будет свой отдельный финал с медалями и лучшие 12 команд из каждой лиге получат путевку на финал чемпионата мира. Кстати, в такой классификации российские четвертьфиналы становятся полуфиналами! Пока это еще отдаленные планы, но первые шаги уже сделаны. Обсуждается своя квота на количество участий в финалах лиг (3 раза).
К сожалению, в этом году значительная часть команд не получили визы совсем (5 команд) и еще десяток не смогли приехать полностью из-за визовых проблем одного из участников. Саратовский ГУ, видимо, оказывается в их числе. Было анонсировано решение пригласить в следующий финал без каких-либо отборов и учёта квот 5 команд, которые не смогли приехать в этом году. Кроме того, предлагается дать +1 год к участию (без учёта каких-либо других требований) всем командам, которые не смогли приехать полностью.
Следующий финал чемпионата состоится в Пекине, а через год — в Коччи (Индия).
Такие новости.
А 1/8 это , видимо, кволы к полуфиналу
От перемены мест слагаемых сумма ... уменьшается. Количество финалистов сокращается со 130 до 96 команд. Вместо 14-17 мест в последние годы NEERC получит только 12 гарантированных.
.
ГРЯДЕТ ПЕРЕДЕЛ МИРА !
Михаил, а есть информация какие еще нировские команды пострадали?
Высшая школа экономики — один участник завис на каких-то проверках.
А участвовать вдвоем тем кто приехал при этом дадут?
Если да, то может у кого-то 3 финала получиться
.
Если количество команд от одного вуза в "финале Северной Евразии" не сократят до одной по примеру нынешних финалов, то для нас ничего принципиально не изменится, кроме небольшого сокращения квоты на общем финале. А вот если сократят... то это конечно будет революция — рубка среди команд сильных ВУЗов переместится в нынешние четвертьфиналы, а полуфинал станет меньше раза в три.
Спускать это на четвертьфиналы ни коем случае нельзя.
А кто минусует, объясните логику? Уровень большинства российский четвертей, прямо скажем, так себе, есть несколько исключений, но даже московский проблемсет бывает не очень. Я бы посмотрел на то, как в России сделают порядка 5 хороших проблемсетов на четвертьфиналы, что-то я в эту затею не очень верю.
Сделают 1-2 и распространят на все четверти. Питерский проблемсет итак половина NEERC-а играет.
Тогда возникнет другая проблема: сейчас есть много регионов, делающих свои чф — хорошие проблемсеты бывают в Питере, Москве, Саратове, Екатеринбурге (до того момента, пока они не забили на это дело), Минске. А так получится, что в субрегионах будут делать только халяву для этапа 1/8, это не очень способствует развитию community вокруг организации этих этапов.
.
Вот и реклама кволов подъехала =)
Кволы тоже выполняли другие цели
.
Нет, ну в такой модели все идет к тому, что перед четвертью повсеместно появится этап кволов, на котором задачи будут проще тех, что на четверти, и выполняющий цели отбора команд новичков. Я конечно писал с оттенком троллинга, но с осознанием необходимости такого этапа в предлагаемой модели.
.
Под финалистами ты имеешь в виду участников "финала" NEERC-а? Если там одна команда от вуза будет, то какую схему ты еще видишь?
.
Ну такое конечно будет лучше всего, да. Только отбор на финал-финал будет не тех тогда, кто медальки получил на почти-финале. А давать медальки на почти-финале не топ-12 такое себе.
В чем проблема давать медали топ-12, а отбирать на финал топ-12(или все же больше, чем 12?) с ограничением в 1 команду от вуза? Как это было в старой схеме.
Заменили дипломы медалями, подняли статус соревнований — все круто. Зачем хорошую устоявшуюся схему ломать?
Проблема ни в чем, это идеальный вариант. Обсуждалась ситуация, когда по одной команде от вуза на NEERC, косвенно такие планы следовали из
Если ты внимательно почитаешь комментарии, то я нигде и не призывал ломать текущую схему.
Интересно было бы посчитать "инверсии" по командам для случая, когда команды сразу из четвертьфинала выходят в финал и для случая с выходом через NEERC.
Например, инверсии относительно опенкапа, Workshop-ов, Петрозаводска или же aggregate CF рейтинга (к сожалению, проверить "а как бы сыграла другая команда в финале" невозможно).
Что-то мне кажется, что в некоторых регионах инверсий будет поменьше без полуфинального фильтра, чем с полуфинальным. Или как минимум сравнимо...
Ну МосЧФ "не очень" бывает не чаще, чем, например, проблемсет NEERC.
При этом прекрасно справляется и с отбором команд МФТИ-МГУ-ВШЭ, и с отбором команд "непроводящих" вузов, и с розыгрышем чемпионства среди топ-команд, включая гостевые.
топ5 — да, топ1 — нет. Правда, с топ1 и NEERC не всегда справляется.
Выборка из одной гостевой команды и одного года — как-то не очень репрезентативна.
В этом году, я считаю, МосЧФ был не очень, потому что задачи, которые определяли проход, были техническими. При этом из сложных задач были пара очень интересных, но до них многие тупо не дошли.
Немного не понял суть изменений Я всё ещё буду каждый год в Петербург приезжать?
Иначе будет ситуация, когда медали будут получать одни, а в финал выходить другие команды. Рубка перейдет в текущие четвертьфиналы, но теперь то они станут полуфиналами.
По старой схеме дипломы 1 степени на полуфинале получали одни команды, а в финал выходили другие. И все были довольны.
Ну одно дело дипломы, а другое уже медали финала лиги.
Проводить "рубку" на задачах сложности нынешних четвертьфиналов нельзя(результаты могут быть неадекватными), следовательно, надо повышать сложность задач текущих четвертьфиналов. А это, в свою очередь, снизит популярность ACM.
Хорошее: у провинции будет больше шансов цепляться за медали преобразованного NEERC.
Плохое: у многих сильных команд топ-вузов будет всего 1 контест в году, и по несколько безуспешных попыток выйти из четвертьфинала.
Всё это скорее всего приведёт к развитию идеи кволов перед четвертьфиналами, а ещё вполне может начаться миграция участников из топ-вузов в провинцию (например, на старших курсах), чтобы избежать внутривузовского фильтра.
Еще плохое: снижение фактически до нуля количества официальных онсайт контестов, на которых команда, не претендующая на выход в финал, способна решить пристойное количество задач.
Хороший повод добавить Kotlin к официальным языкам ACM-ICPC.
Угадал: https://www.facebook.com/acmicpc.au/posts/1376936002398504
Отличные новости!
Вкупе с новостями про одобрение Kotlin в Android Studio от Google, я думаю, что он скоро станет сильно хайповым как Go/Rust/Ruby/Swift в свое время =)
Тут важнее, что появится CLion вместо Eclipse + CDT Plugin и Idea вместо Eclipse. Всё-таки на финале почти все команды предпочтут писать на C++/Java, особенно претенденты на медаль.
Kotlin — это Java 80 уровня ;)
На самом деле, я готов поверить, что с джавы на котлин можно перейти.
в сортах говна не разбираюсь, нокотлин имеет всю безопасность джавы и всю ее библиотеку + сахарокПравда, если на тренировках он будет недоступен, то не слишком удобно готовиться.
Код получается лаконичнее даже C++. Есть поддержка функционального программирования. Вместе с сахаром это даёт писать кратко и напрямую отражая абстракции в голове.
Примеры решений от первоисточника: http://codeforces.me/blog/entry/45454?#comment-300490
Там же в шапке вводные ссылки по языку.
Вопрос не в лаконичности и поддержке фичей, а в производительности.
Кажется, что он не должен быть принципиально медленнее джавы
На самом деле, Kotlin может превосходить Java по производительности на соревнованиях за счет активной поддержки инлайнинга функций еще во время компиляции в байткод, тогда как обычные Java методы могут расчитывать на это только во время исполнения, если оптимизатор успеет отработать за те пару секунд, которые обычно отводятся на выполнение решения на соревнованиях.
А можешь каких-нибудь реальных примеров привести?
Не знаю, можно ли назвать реальным примером вычисление числа Фибоначчи с использованием мемоизации, но следующий код на Kotlin отработал в песочнице Codeforces за 217 мс:
А анологичный код на Java за 997 мс:
Но если избавиться от лямбд в джава-коде, время работы составит те же 217 мс, а значит дело вовсе не в инлайне фукнциий.
И если мы посмотрим в байткод, то увидим, что Kotlin не заинлайнил функцию fib.
Да и не смог бы, потому что fib -- "нехвостовая" рекурсивная функция.
.tx, то что вы сделали – это фактически вручную заинлайнили
computeIfAbsent
вместе с переданной лямбдой, то есть именно то, что Kotlin сделал автоматически сgetOrPut
. Значит причина именно в инлайнинге.Он заинлайнил не
fib
, аgetOrPut
, вместе с лямбдой.Мне почему-то показалось, что вы хотели скзать, что Kotlin сам инлайнит всё что может. :)
Большинство функций стандартной библиотеки инлайнятся, это правда. И в данном примере именно поэтому Kotlin выигрывает, вы правы.
Фигурные скобки после getOrPut в Kotlin — это лямбда. В любом случае, без JMH и прогрева по одному запуску делать окончательные выводы не стоит. Если приписать
inline fun fib
то и она заинлайнится. Хвостовая рекурсия черезtailrec
— это совсем отдельная история.Слегка упустил из виду, что в соревнованиях все решения запускаются без прогрева. )
Давным давно, еще во времена беты, я ставил CLion. Его понимание плюсов было чуть ниже уровнем, чем Visual Studio 2003. Не знаю, изменилась ли ситуация — надо будет скачать.
Бывает понимание плюсов ниже, чем 2003-й вижак? Пример в студию?
Сейчас вижак лучше чем CLion наверно только дебаггером. Еще мне нравится в вижаке фича автоматической расстановки пробелов вокруг операторов, в строках типа
for (int i = 0; i < n; ++i)
Ну и CLion жрет довольно много ресурсов. Плюсов значительно больше: поддержка Linux, подсветка warning-ов, удобное переключение между задачами, быстрое изменение ключей компиляции через CMake...
Я поставил, работоспособность из коробки после установки получает оценку 0. Как ему нормальный gcc подставить? У меня как-то подключился MinGW, в котором GCC 4.8.1, который не может скомпилировать std::make_unique
Кстати, когда я в VS жму правой кнопкой на строке с #include, первый пункт меню — перейти. А здесь такого в контекстном меню вообще нет :)
Go To -> Declaration в контекстном меню или Ctrl+click прямо на имя либы. Это так уж неудобно?
За что еще раз оценка 0 и плевания, потому что в моей операционной системе Ctrl+Click означает "Select current word" и я этим пользуюсь.
В любом случае, наличие Ctrl+Click не отменяет необходимость добавить пункт в контекстное меню.
Ctrl+B тоже должно работать. А пункт в контекстном меню Kostroma уже подсказал.
По Go To Declaration кстати не всегда в верх файла либы переходит, иногда видимо переходит на функцию, которая используется в текущем файле.
============================================
Вот вам еще немного репортов, просто на первом попавшемся нетривиальном поведении.
std::vector x;
CLion не показывает ни одной ошибки.Если вдруг правда интересно:
тип переменной — cmd+наведение (в вашей операционке, наверно alt+наведение)
конст/не конст сигнатура — в quickDoc (дефолтный шорткат не помню) (работает как в дополнении, так и в уже написанном коде)
===========================
Ага. MouseMove с зажатым Control при условии активного окна. MouseMove, Карл. При условии активного окна, Карл. Мне кажется, главная проблема CLion в том, что ее разработчики ей не пользуются.
===========================================
Кстати, в этой ситуации VS опять повел себя лучше.
VS при наведении мне говорит, что тип v это
std::vector<int_ptr>
,CLion по Ctrl+MouseMove выдал безумной полезности полную развертку
vector<std::unique_ptr<int, std::default_delete<int>>, std::allocator<std::unique_ptr<int, std::default_delete<int>>>>
Да, CLion в те времена предлагал внешние перегрузки operator << в конструкции "std::cout.", это, вроде, пофиксили.
Кто-нибудь из этого списка пострадал?
Кажется, нет.
А на 1/8, которая уже прошла в Украине эта новость как-нибудь влияет?
На каком основании квота NEERC несправедливо уменьшена?
И какого лешего Африка и Латинская Америка имеют столько же квот, сколько и мы?
Пока ничего не уменьшено. Я думаю, реформы будут внедряться аккуратно.
Судя по всему, четвертьфиналы по сложности задач приблизятся к полуфиналу, а это непременно приведет к снижению популярности ACM.
Will there be online live transmission or something? Petr ?
Official ICPC Live stream
My heart came into my mouth when I first saw this.
Why dislikes? Sorry guys if it was rude or if I did any mistake.
Have I just read that 2019 world finals will be in India??:)
A small correction: It's Kochi(India)
I think it will be on China !
next WF will be hold in china!
.
It was announced the decision to invite to the next Wold Finals without any selections and quota accounting for 5 teams that could not come this year. In addition, it is proposed to give a +1 year to participate (without taking into account any other requirements) to all teams that could not arrive completely.
MikeMirzayanov my university is among those five universities who couldn't get a visa, what if another team from the same university qualified for Beijing finals, is there gonna be two teams from the same university in Beijing WF or what???
.
My team from Universidad De Pinar Del Río (I'm the coach) could not attend ACM ICPC WF 2017, but we will be attending on 2018's edition. We won't be needing visas to get to China. Thanks ICPC !
Which teams are affected by visa problems besides 3 teams from Syria?
One participant from a Russian team (Higher School of Economics, Moscow) was unable to obtain visa in time due to prolonged administrative processing.
Also one guy from Saratov doesn't get visa by the same reasons.
The visa was denied to all members of team "Universidad de Pinar del Rio" (Cuba) on two different ocations
I really like the idea of league-level contests. It could give teams one more occasion to compete and bridge the gap between regional level and WF level, which is quite large at the moment.
It should also reduce the year-to-year unfairness in WF selection. If you happen to be in a year where your regional has a few really strong teams and the number of slots that year isn't big, then you'll be at a disadvantage, while in the larger leagues this effect will be diluted.
Do you have a more precise definition "distant plans"? Does it mean in 2~3 years?
(As an aside, sending 12 teams from Australia and Oceania seems a bit over the top, but I guess this still has to be negotiated. :P)
ACM-ICPC Asia Council elected five members to join ICPC 2026 Committee. http://blog.sina.com.cn/s/blog_b946da100102wyby.html So I would guess the "distant plans" will be carried out within 10 years.
By the way, Asia currently has three sub-regions and 45 slots (38 participation slots). I would prefer to merge Australia and Oceania into Asia first, then split Asia and Oceania into three parts.
Shall we start a list of ICPC2018 participants already XD
So glad for these teams, they got what they deserve. Congrats buddies :D
I don't get it... so there will be some reform next year or this is just the plan?
Fair enough, Thank you ICPC :D
My team is one of these 5 teams.
goodluck next year!
Jetbrains is so generous. Guess it's time to give Kotlin a try.
"It was announced the decision to invite to the next Wold Finals without any selections and quota accounting for 5 teams that could not come this year."
"Wold Finals". Please fix this.
If Mike said 2 + 2 = 5 then it's true. Isn't it?
Whats true is that you don't mess with Mike
is it rated?
Hopefully the JetBrains sponsorship mean we can get Kotlin support or IntelliJ in the images.
That seems to be the plan:
"Alongside the financial support, we will also be providing access to our development tools, CLion, IntelliJ IDEA and PyCharm in particular, to participants, starting with the next round of Regional Contests. In addition, we are extremely proud that Kotlin will be offered as an additional programming language for the 2018 World Finals, together with C++, Java and Python. We believe both our tools and the Kotlin language can help contestants solve the challenges and tasks even more effectively."