Автор NercNews, история, 7 лет назад, По-английски

text

Let us introduce the new programming language in ICPC: Kotlin. It is modern and developing language created by our sponsor JetBrains. Kotlin is inspired by Java and as Java is named after the island. Currently, Kotlin programs are compiled into JVM bytecode, all Java written code can be used from Kotlin sources and Kotlin written code can be used from Java sources as well out of the box. Kotlin being developed now most of the standard libraries are Java library classes, making Kotlin a programing language that is already used in many projects being the main language of their development.

Comparing to Java language some Java disadvantages fixed and new features added. Some of them we will see in today's solution of ICPC World Finals 2016 problem C (101242C - Ceiling Function). Less boilerplate code and syntactic sugar added

  1. new operator omitted
  2. data classes implement hashCode, equals and toString methods depending on constructor parameters
  3. operator overloading
  4. with function, to implement a block of code, making captured value as this
  5. when operator providing better readability of conditional operator in some cases
  6. type inference (IDE supports hints on variable and function types, it's just you don't have to type it)
  7. functional programming style
import java.util.*

data class Tree(var left: Tree? = null, var right: Tree? = null) {
    var value = 0
}

operator fun Tree?.plus(x: Int): Tree? {
    if (this == null) return Tree().apply { value = x }
    if (x < value) {
        left += x
    } else {
        right += x
    }
    return this
}

fun main(args: Array<String>) = with(Scanner(System.`in`)) {
    val n = nextInt()
    val k = nextInt()
    val a = Array(n) { IntArray(k) { nextInt() } }
    println(a.map { it.fold(null, Tree?::plus) }.toSet().size)
}

You can try Kotlin at: https://try.kotlinlang.org

Полный текст и комментарии »

  • Проголосовать: нравится
  • +107
  • Проголосовать: не нравится

Автор NercNews, 7 лет назад, По-русски

Всем привет!

text

В эти выходные в стенах Университета ИТМО в Санкт-Петербурге, а также в Барнауле, Алматы и Тбилиси пройдет двадцать второй полуфинал чемпионата мира по программированию ACM ICPC в Северной Евразии.

Текущие результаты

На этом полуфинале 308 команд поборются за шанс выступить на чемпионате мира ACM ICPC 2018, который пройдет в апреле в Китае. Из них 128 — в Санкт-Петербуге, 73 — в Алматы, 60 — в Барнауле и 47 — в Тбилиси.

UPD: список команд, прошедших на финал ICPC:

  • Moscow I of Physics and Technology 1 (Golovanov, Ostanin, Uvarov)
  • Moscow SU 1 (Ipatov, Makeev, Reznikov)
  • SPb ITMO University 1 (Belonogov, Putilin, Zban)
  • SPb Academic U 4 (Belova, Fedorov, Sayutin)
  • Latvia U 2 (Civkulis, Klevickis, Larka)
  • Kazakh-British Technical U 1 (Aman, Amanov, Zhussupov)
  • Ural Federal U 1 (Borozdin, Leskov, Sivukhin)
  • Tartu U 1 (Lill, Nisumaa, Unt)
  • SPb SU 3 (Logunov, Makarov, Savchenkov)
  • Perm SU 1 (Lizunov, Tsaplin, Tsaplin)
  • Vilnius U 1 (Jadenkus, Klimavičius, Kurtinaitis)
  • Belarusian SU 2 (Dubovik, Karabeinikau, Vilcheuski)
  • Higher School of Economics 1 (Iskhakov, Kraskevich, Zimin)
  • Moscow Aviation I 1 (Mingalev, Mokin, Trofimov)
  • Saratov SU 2 (Androsov, Dalabaev, Glazov)
  • Novosibirsk SU 1 (Smirnov, Viktorov, Vishnevskii)

Подписывайтесь на нас в VK, твиттере, Instagram, telegram и на YouTube, а так же присоединяйтесь к видеотрансляции.

Если вы хотите прийти на полуфинал в Санкт-Петербурге гостем — заполните гостевую форму!

Чтобы немного развлечь вас в дни ожидания полуфинального контеста, предлагаем принять участие в небольшом квесте. Задача проста: выполняете задание и размещаете в Twitter, Instagram или VK с хештегом задания и #NEERCQuest, тем самым зарабатывая баллы. Квест продлится до 16.30 3 декабря. А победители будут награждены на церемонии закрытия. Принять участие могут не только участники NEERC, но и тренеры, гости, жюри , волонтеры и даже болельщики.

Зеркало можно найти здесь, там уже можно написать пробный тур.

Если бы мы участвовали в квесте, то наше фото было бы с одной из этих команд:

Команда Участник 1 Участник 2 Участник 3 Суммарный рейтинг
ITMO University Belonogov (Belonogov) Putilin (SpyCheese) Zban (izban) 8500
Moscow SU 1 Ipatov (LHiC) Makeev (V--o_o--V) Reznikov (vintage_Vlad_Makeev) 8396
MIPT 1 Golovanov (Golovanov399) Ostanin (Kostroma) Uvarov (-imc-) 7505
Ural FU 1 Borozdin (kb.) Leskov (Tinsane) Sivukhin (sivukhin) 7254

Официальный хештег соревнований: #NEERC.

Удачи всем участникам!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +163
  • Проголосовать: не нравится

Автор ODT, история, 7 лет назад, По-английски

Hello, Codeforces!

We are glad to invite you to participate in Codeforces Round #449 (both Div. 1 and Div. 2) which will be held on December 2, 17:05 MSK.

There are seven problems, created by webmaster, ODT, dogther.

This round is about the happiest girl in the world — Chtholly Nota Seniorious~!

You will help Chtholly, Nephren, Ithea and Willem (characters in the great novel and anime "What Do You Do at the End of the World? Are You Busy? Will You Save Us?") to solve some problems.

(Image by gin_sei56(・.8・) on pixiv)

This round is our first round on Codeforces.

Thanks to zcyskyaa for helping us, Arpa, cyand1317 and Tommyr7 for testing the round, vintage_Vlad_Makeev and KAN for round coordination and MikeMirzayanov for Codeforces and Polygon platforms.

This round has 5 problems in each division and you have 2 hours to solve them.

The scoring will be announced shortly before the start of the contest.

The contest is rated for both Div. 1 and Div. 2 contestants.

It's recommended for both divisions to read through the Interactive Problems Guide before the round.

Wish everyone high rating and accepted submissions!

Upd: Scoring is 500-1000-1500-2000-2500

Upd2: Congratulations to the winners:

Div 1:

  1. MrDindows

  2. bmerry

  3. krismaz

  4. Shik

  5. ainta

Div 2:

  1. blatuitorulmlc

  2. lumibons

  3. Starlit

  4. Grevozin

  5. lyoz

The editorial will be posted soon.

Upd3: Editorial

Полный текст и комментарии »

  • Проголосовать: нравится
  • +172
  • Проголосовать: не нравится

Автор NBAH, история, 7 лет назад, По-русски

Всем привет!

26 ноября в 19:05 MSK состоится рейтинговый раунд Codeforces #448 для участников из второго дивизиона. Традиционно, участники из первого дивизиона приглашаются поучаствовать в соревновании вне конкурса.

Автором всех 5 задач являюсь я. Это мой второй раунд на Codeforces! Советую участникам ознакомиться с условиями всех задач. Надеюсь каждый найдет себе задачу по вкусу.

Хочется выразить благодарность координатору раунда vintage_Vlad_Makeev за помощь в подготовке контеста и igdor99 за помощь в разработке задач, а также MikeMirzayanov за замечательные платформы Codeforces и Polygon. Ну и, конечно, Tommyr7, Arpa, 300iq за прорешивание раунда.

Разбалловка: 500-1000-1750-2000-2250

Удачи и высокого рейтинга всем!

UPD: Соревнование завершено! Скоро будет опубликован разбор.

UPD: Разбор

Поздравляем победителей!!!

Div1

  1. uwi

  2. Benq

  3. irkstepanov

  4. dreamoon_love_AA

  5. JustasK

  6. eddy1021

  7. yancouto

  8. chemthan

  9. Nephren_Ruq_Insania

  10. KrK

Div2

  1. Nephren_Ruq_Insania

  2. Mahan_sh

  3. lsrothy

  4. ngfam

  5. georgerapeanu

  6. ZalBinHassan

  7. mtkaya

  8. Bodo

  9. szhouan

  10. fchirica

Полный текст и комментарии »

  • Проголосовать: нравится
  • +405
  • Проголосовать: не нравится

Автор DimaPhil, история, 7 лет назад, По-русски

Всем привет!

В это воскресенье, завтра, 26 ноября в 12:00 по московскому времени пройдет четвертая и последняя командная интернет-олимпиада для школьников. В ней вы будете помогать величайшему детективу Эркюлю Пуаро расследовать убийство в Восточном Экспрессе и все связанные с ним проблемы.

Продолжительность этой олимпиады будет составлять 5 часов. Олимпиада будет проходить в базовой и усложненной номинациях. Подробнее о номинациях и правилах можно прочитать здесь.

Если вы еще не регистрировали команду на интернет-олимпиады в этом сезоне, то сделать это можно тут. Все команды будут подтверждены перед началом олимпиады.

Условия появятся на сайте в момент начала олимпиады. Сдавать задачи можно в PCMS2 Web Client

Олимпиаду для вас подготовили Илья Збань (izban), Станислав Наумов (josdas), Николай Будин (budalnik), Дмитрий Филиппов (DimaPhil), Григорий Шовкопляс (GShark), Виктория Ерохина (viktoria), Юрий Бондарчук (Yury_Bandarchuk), Арсений Кириллов (craborac), Александра Дроздова (demon1999) и Егор Ждан (egor.zhdan).

Удачи!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +20
  • Проголосовать: не нравится

Автор Huawei_Codecraft, 7 лет назад, По-английски

If you are 14+ and want your ideas to be implemented in new technologies and products, which being used by 1/3 of global population, participate in our Marathon started recently https://it-edu.mipt.ru/en/huawei-codecraft-marathon

Task can be downloaded after registration, see links below: John has a digital camera. He usually takes two photos, first photo is bad quality and blurred, second has good quality, but his hands shaked, and the second photo has moved compared to the first one. Help John to restore first(blurred) photo position, considering that the movement was in the same plane.

Solution: We highly encourage participants to use neural network based approaches for solving this task. You can download 30 samples from checker in txt format. Data generation for neural network training is one of the main point in our task. Converter from/to graphic format is also part of this task.

Registration can be done by captain. The team can consist from 1 to 3 team members: https://it-edu.mipt.ru/el/mod/apply/view.php?id=60 Checker http://huawei.it-edu.mipt.ru/marathon1 Rules https://it-edu.mipt.ru/en/huawei-codecraft-marathon/rules

Submission deadline is 2017 December 1, 23:59:59 Moscow time. Results will be announced on December 3 during the closing ceremony of 1/2 NEERC ACM ICPC 2017 at ITMO.

@stake are 9 internship certificates, 9 smartphones, several tours to HQ

Полный текст и комментарии »

  • Проголосовать: нравится
  • +35
  • Проголосовать: не нравится

Автор BledDest, история, 7 лет назад, По-русски

Привет, Codeforces!

23 ноября в 18:05 по Москве начнётся Educational Codeforces Round 33.

Продолжается серия образовательных раундов в рамках инициативы Harbour.Space University! Подробности о сотрудничестве Harbour.Space University и Codeforces можно прочитать в посте.

В качестве эксперимента мы решили сделать раунд рейтинговым для Div. 2. Соревнование будет проводиться по немного расширенным правилам ACM ICPC. После окончания раунда будет период времени длительностью в один день, в течение которого вы можете попробовать взломать абсолютно любое решение (в том числе свое). Причем исходный код будет предоставлен не только для чтения, но и для копирования.

Вам будет предложено 6 задач на 2 часа. Мы надеемся, что вам они покажутся интересными.

Задачи вместе со мной готовили Михаил awoo Пикляев и Владимир vovuh Петров.

Удачи в раунде! Успешных решений!

UPD: Разбор задач.

Также у меня есть сообщение от наших партнёров, Harbour.Space University:

Be sure to join these courses to sharpen your programming and data analysis skills:

Combinatorics and graphs with Sergey Nikolenko, Researcher, Steklov Mathematical Institute at. St. Petersburg. He is a computer scientist with vast experience in machine learning and data analysis, algorithms design and analysis, theoretical computer science, and algebra.

Algorithms and Data Structures with Edith Elkind, Professor University of Oxford, Department of Computer Science. She researches game theory and the computation of social choices. She looks at the decisions involved in multi-agent systems such as auctions, elections and co-operative games.

Big Data Analysis: Mapreduce, Spark, BigTable/HBase, Distributed Data with Pavel Klemenkov and Alexey Dral. With HDFS, MapReduce, Spark, and NoSQL, students will master and sharpen their knowledge in basic technologies of the modern Big Data landscape.

Parallel and Distributed + High Performance Computing with Dalvan Griebler. The name says it all. Learn how to run your programs faster.

List of all courses:

27.11.17 — 15.12.17 — Image and Video Analysis with Archontis Giannakidis

27.11.17 — 15.12.17 — Linear Algebra with Archontis Giannakidis

08.01.18 — 26.01.18 — Text Mining & Translation with Sergey Nikolenko

08.01.18 — 26.01.18 — Combinatorics and graphs with Sergey Nikolenko

29.01.18 — 16.02.18 — Security analysis of networked objects with Yaroslav Rabovolyuk

19.02.18 — 09.03.18 — Security Operations Center and Cyber Threat Hunting with Sergey Soldatov and Teymur Kheirkhabarov

19.02.18 — 09.03.18 — Calculus with Dmitry Ivankov

12.03.18 — 30.03.18 — Malware Reverse Engineering with Vladislav Stolyarov, Victor Chebyshev and Boris Larin

09.04.18 — 27.04.18 — Incident Response & Digital Forensics with Konstantin Sapronov and Ayman Shaaban

09.04.18 — 27.04.18 — Linear algebra with David Zmiaikou

30.04.18 — 18.05.18 — Statistical Data Analysis with Evgeniy Riabenko

30.04.18 — 18.05.18 — Probability theory with Evgeniy Riabenko

21.05.18 — 08.06.18 — Parallel and Distributed + High Performance Computing with Dalvan Griebler

21.05.18 — 08.06.18 — Algorithms and Data Structures with Edith Elkind

11.06.18 — 29.06.18 — Big Data Analysis: Map Reduce, Spark, BigTable/HBase, Distributed Data with Pavel Klemenkov and Alexey Dral

Register for your spot

Полный текст и комментарии »

  • Проголосовать: нравится
  • +309
  • Проголосовать: не нравится

Автор gKseni, 7 лет назад, По-русски

Осталось 7 дней до конца регистрации на Олимпиаду Университета Иннополис для школьников 7-11 классов по математике и информатике!

Олимпиада входит в перечень РСОШ на 2017/2018 — победители и призеры получат возможность поступить в вуз без вступительных испытаний или получить 100 баллов ЕГЭ по профильному предмету. Успешные результаты на ООУИ позволят попасть на зимнюю школу олимпиадной подготовки по математике и информатике.

Регистрация открыта на сайте до 1 декабря.

Даты заочных туров:

  • Информатика — 2 декабря в 15.00, 17 декабря в 10.00;
  • Математика — 3 декабря в 10.00, 16 декабря в 15.00.

Победители будут приглашены на очный тур в Иннополис:

  • Информатика — 24–25 февраля 2018 года;
  • Математика — 9-11 марта 2018 года.

Основная площадка проведения очного этапа Олимпиады – г. Иннополис, Россия. Также для участников Олимпиады по информатике будет доступна дополнительная площадка в городе Минск, Беларусь. Условия такие же, как в Иннополисе — проживание и питание во время Олимпиады за счет организаторов.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +65
  • Проголосовать: не нравится

Автор MikeMirzayanov, 7 лет назад, По-русски

Привет!

Я рад сообщить, что два раунда Codeforces прошли вполне хорошо в плане работы Codeforces, чему я очень рад. Эти дни ночи я провел в профайлере, фиксах кода, изучению настроек MariaDB.

Кроме этого мне удалось выделить несколько часов в воскресенье (если честно, то до утра понедельника), чтобы закончить давно планируемое нововведение.

Встречайте, диагностика решений на С++!

Постоянные посетители Codeforces уже устали от вопросов менее опытных участников: «Почему моё решение не работает на тесте на серверах Codeforces, если локально я его запускаю, и оно работает? У вас неправильный компилятор/серверы!» В 99% случаях это пример неопределённого поведения в программе. Иначе говоря, программа содержит ошибки, которые в силу ряда обстоятельств не воспроизводятся при локальном запуске, но воспроизводятся при запуске на серверах Codeforces.

Иногда, это непросто заметить подобную ошибку. Небольшой выход за границу массива может приводить и к неправильному ответу на тесте и к ошибке выполнения программы.

В g++/clang++ есть замечательная штука sanitizers (переводится как «дезинфицирующее средство»). Это такие способы скомпилировать программу в особом режиме так, что при своей работе она будет проверять свой ход выполнения на неопределенное поведение (и некоторые другие ошибки) и в случае возникновения выдавать их в stderr. Похожей функциональностью обладает и drmemory (некоторый аналог valgrind, но для Windows), который для определения ошибок запускает программу в особом режиме. При таких диагностических запусках колоссально страдает производительность выполнения программы (программа выполняется медленнее в 5-100 раз и требует больше памяти), но зачастую оно того стоит.

Теперь автоматическая диагностика в некоторых случаях предотвратит вопрос вида «Почему не работает???», указав на ошибку или её вид!

Если ваше решение:

  • написано на C++,
  • упало с вердиктом «неправильный ответ» или «ошибка исполнения»,
  • на этом тесте отработало предельно быстро и съело мало памяти,

то оно будет перезапущено, используя специальные диагностические компиляторы (clang++ c sanitizers и g++ с drmemory). Если при таком запуске произойдет ошибка исполнения, то журнал запуска будет отображен в деталях тестирования в разделе «диагностика». Конечно, эта запись будет содержать технический лог на английском языке, но зачастую он укажет вам на ошибку программы. Часто он содержит причину падения программы и даже строку исполнения. Если диагностика не отображается, значит хотя бы одно условие выше не выполнилось или диагностика не обнаружила ошибок.


Пример отображения диагностики: здесь написано, что произошел выход за границу массива в 78 строке.

Таким образом, диагностика будет иногда помогать найти вам ошибку вида "выход за границу массива", "знаковое переполнение", "неинициализированная переменная на стеке" и т.п. Внимательно читайте диагностику и не допускайте подобных ошибок в будущем!

Желаю, чтобы ваши программы не падали. Надеюсь, нововведение будет полезно!

Есть большие планы как полезно применять такую диагностику. Не уходите далеко, ждите новостей, скоро будут еще нововведения!

P.S. Так же диагностические компиляторы просто доступны для использования. Например, их можно использовать на вкладке «Запуск». Напоминаю, что программа работает многократно медленнее и потребляет больше памяти в режиме диагностики.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +1719
  • Проголосовать: не нравится

Автор stgatilov, история, 7 лет назад, По-русски

В этом году в первой номинации Всесибирской олимпиады участникам снова предлагалось написать программу управления роботами-пылесосами.

Как и в прошлом году, игра массовая: в каждой игре запускаются вместе стратегии всех 46 команд. Поэтому, как и в прошлом году, участником пришлось писать стратегии на языке Lua. По появившейся в прошлом году хорошей традиции, в каждом классе, в котором писали соревнование участники, был включен телевизор или проектор, на котором постоянно по циклу показывались последние игры, прошедшие на сервере жюри. Это позволяло участникам быстрее и проще адаптировать свои стратегии под изменения стратегий соперников. Более того, каждый участник мог даже скачать решения всех других участников в любой прошедшей игре, и запустить их локально в любых желаемых конфигурациях.

Правила игры были довольно простые. У каждого игрока есть пылесос, который ездит по полю, и своя территория. Когда пылесос ездит вне своей территории, он оставляет за собой хвост. Если пылесос замыкает свой хвост, вернувшись на свою территорию, тогда все клетки замкнутого контура переходят к нему. Если в хвост пылесоса кто-либо врезается, то игрок умирает: его пылесос, хвост и территория исчезают. Поле циклически замкнуто по горизонтали и вертикали. В качестве очков игрока бралась максимальная достигнутая в течение игры площадь своей территории, к тому же был бонусный множитель за убийства.

Видео одной игры финального тестирования.

Игровое поле

Сейчас по задаче можно скачать:

  1. Исходные коды игры. Для сборки нужны CMake и Qt, но дорогу осилит идущий =)

  2. Оригинальные материалы. Этот архив выдавался участникам на соревновании. В нём есть в том числе полное условие задачи и виндовые бинарники. Если визуализатор сходу не запускается, советуем собрать из исходников.

.

.

Немного фото с места проведения:

Игра и котики

Обсуждение после конца тура

Полный текст и комментарии »

  • Проголосовать: нравится
  • +68
  • Проголосовать: не нравится