Язык этого раунда — Picat, во многом похожий на Prolog. Мы постарались подобрать задачи так, чтобы большинство из них было удобно решать с использованием декларативного подхода.
Традиционная программа A+B (числа A и B разделены пробелом) выглядит следущим образом:
main =>
A = read_int(),
B = read_int(),
C = A + B,
println(C).
Основной источник информации о языке — сайт http://picat-lang.org/. Используется версия 0.9. Если официальный сайт недоступен, скачать архив с компилятором можно здесь, пароль b161bb757645d9f0.
Несколько замечаний:
- вердикт "ошибка компиляции" означает, что сильно нарушен синтаксис. В большинстве случаев (например, если ваша программа вызывает неописанную функцию), вердикт будет "неправильный ответ"
- названия переменных должны начинаться с большой буквы или с подчеркивания
- в функции printf рекомендуется использовать %n вместо \n
- не используйте модуль mip, он выводит отладочную информацию в stdout
28 марта в 20:00 (московское время) состоится первый Уайлд-кард раунд VK Cup 2015, который будет проведен в формате Surprise Language Round. Правила:
- Одновременно проводится два раунда: Уайлд-кард раунд 1 и Уайлд-кард раунд 1 (интернет-трансляция). В основном раунде участвуют команды, прошедшие квалификацию VK Cup. Интернет-трансляция открыта для всех (не только для участников VK Cup) в формате индивидуального участия. Команды, которые уже прошли в Раунд 2, могут участвовать в основном раунде вне конкурса.
- В Раунд 2 проходят 50 лучших команд из основного раунда, которые не прошли в Раунд 2 по результатам Раунда 1.
- Соревнование будет нерейтинговым для всех участников.
- Соревнование проводится по правилам ACM ICPC: положение в результатах определяется количеством решенных задач, при равном количестве — набранным штрафным временем. Изначально штрафное время участника равно 0, при каждой сданной задаче оно увеличивается на время, прошедшее с начала контеста, + 20 минут за каждую неудачную посылку до отправки правильного решения. Решение считается правильным, если оно прошло все тесты из предопределенного набора; правильно ли посланное решение, становится известно сразу. Взломов чужих решений нет.
- В раунде будет 8-10 задач, примерно отсортированных по сложности, и 2.5 часа на их решение.
- Решения задач принимаются только на одном языке, который будет объявлен в начале контеста. Язык существует давно, а не придуман нами специально для раунда.
- Пожалуйста, в начале контеста перечитайте этот пост целиком: в нем появится объявление языка, рекомендации по установке транслятора (в интерфейсе контеста будет доступен запуск программы онлайн) и полезные ссылки на документацию (на английском). В остальном изучение языка — дело рук самого участника.
Мы надеемся, что выбранный нами язык будет незнакомым для большинства участников раунда. Для справки приведу список Surprise/Unknown Language Round, которые проводились на Codeforces ранее.
Удачи!
Контест окончен. Поздравляем победителей и напоминаем, что лучшие 50 команд из основного раунда проходят в Раунд 2! Разбор задач опубликован здесь.
Класс. Очень соскучился по этим раундам.
То же самое.
И я.
всегда спешу на такие раунды
первый раз поучаствую, наконец.
Ага. Это клевие раунды.
Перед каждым таким раундом за неделю повторяю все существующие ЯП:)
Да, круто =)
Ура! Полгода жду, наконец-то!
Я что-то не очень понимаю логику таких раундов. Быстрее нагуглить, как работать на "волшебном" языке программирования?
Логика логикой, а участвовать в таких раундах очень весело.
та вообще, веселье, partyhard просто...
Ну, зачастую этот "волшебный" язык использует другую парадигму, так что просто нагуглить как сделать цикл, ввод-вывод и условный оператор недостаточно.
уже отметил этот контест в своем гугл-календаре
Ура! Надеюсь, список малоизвестных языков для таких раундов никогда не закончится ;)
Benefit of Unknown language contest that it is Unrated. Also ,The coder's introduce a new language.
Really?
Ни разу не участвовал в таких раундах. Подскажите, пожалуйста, могут ли возникнуть проблемы с установкой трансляторов/компиляторов под Windows? Очень не хочется ставить линуксы на работе.
та не,все норм будет
Таких проблем быть не должно. В прошлых раундах(насколько я знаю) давали все рабочее и для Windows, и для Linux.
P.S. Ahoma, не думаю, что выбранный авторами раунда язык будет на ideone.
Upd: зашел на ideone. Там действительно много языков. Возможно есть и сегодняшний.
он там есть
Кто?
язык :)
просто зайдите в профиль Nickolas и посмотрите на ее организацию :)
Меня только смущает некоторая близость с первой квалификацией RCC.
Меня тоже
Их аж 3 штуки.
Hope that the surprise language would be really fun! I always enjoyed learning a new language in surprise language rounds :D
В полном составе?
Члены одной команды могут участвовать по отдельности?
В основном раунде участвуют команды — они могут быть как полными, так и по одному.
Трансляция ничего не знает о командах VK Cup и там надо участвовать индивидуально. Конечно, члены одной команды могут по отдельности там и участвовать.
> Напомним, что в Раунд 2 пройдут все те команды, которые наберут положительный балл не меньший, чем у команды на 400-м месте.
Я занял 343-е место, но при попытке зарегистрироваться на "VK Cup 2015 — Уайлд-кард раунд 1 (интернет-трансляция)" мне пишет, что я квалифицирован на основную версию.
В какой раунд регаться?
Как хотите. У вас есть возможность регаться и туда и туда.
I think you use icon language :D
Majid is so smart , hope he becomes international grandmaster :)
:|
and I think you are crazy coder !
Он пересечется с RCC2015 1-ой квалификацией!!! Даже времени на отдых не будет. Предлагаю перенести начало на 10-15 минут.
Бизнес по-русски: как убирать соперников
Много ли времени нужно оранжевому, чтобы отобраться в RCC?
учитывая положение дел на RCC, минут 15 хватит)
ну синим да зеленым (как раз основные ребята, что не прошли в VK Round 2) много нужно — почти все два часа (ну или я такой slow:D). Про фиолетовых ничего не могу сказать.
Справедливости ради, синим и зелёным будет легче отобраться из второго и третьего квалификационного раунда. Да и в принципе не вижу ничего страшного в том, чтобы пропустить одну квалификацию.
unrated?why? ):
It doesnt fit into standart codeforces contest rules and meant to happpen for fun only.
Where will be language announced? in contest area?
I had some problems loading archive file under Linux, installing p7zip-full does the trick.
у меня компилятор на винде пишет *** error(undefined_predicate,main/0), хотя в запуске кф все норм. Что делать?? (Не охота ждать по 20 сек)
Реквестирую раунд на языке PETOOH
Раунд им. Bredor_228_Jaguar_Turnik
Как исправлять WA 4 в A?
Сортировать корни правильно. Пример:
Делить на 2А надо
А у меня до этого
A := A * 2,
=)Такое не проходило :(
присваивание там tmp := X1
I would like to sincerely thank the organizers for not choosing FALSE again
FALSE was cool)
Choosing the same language for the second time is not particularly fun in general, but choosing it for the second time in row would be definitely sad — regardless of the language itself :-)
i spent most of the time with a problem in the case there are not solutions in C; using solve_all works fine and gives me the solutions when they exist, but for the second sample case where there are no solutions, it gives me error(failed,main/0) and i could not get the catch mechanism to work...
We discuss this in the contest editorial (the Russian version for C is ready, the English one will be ready soon).
Как и когда можно будет увидеть окончательный результат, без учёта тех, кто участвовал вне конкурса?
Галочку в правом верхнем углу убери и посмотришь.
Спасибо
Time limit for last question was pretty tight — I had to keep resubmitting until it passed.
I think there's solution with complexity O(3N), which should pass comfortably. Though I haven't finished it in time & can't resubmit yet..
Reference solution takes about 200ms.
Then I guess the time limit is too loose and what I submitted (aka brute-force) shouldn't pass :P
Code in edit.
It was our purpose to make it somewhat loose. And only 3 persons managed to solve it.
Your solution is basically the intended solution, but to speed up it tremendously you can add Bd[1] #= 1, because the first value will always be 1.
Wow, this is why declarative languages confuse me. That such a small detail could make the program 10x faster is mind-boggling! Thanks for the pointer.
What is WA14 in F?
This might be the first and the last time when my university Prolog lessons were useful... :)
Дорешивание будет?
Как решать Е?
Есть простая конcтрукция: N — 2 единицы, 2 и D + N.
выводишь набор из N-2 единичек, двойку и N+D
тогда сумма будет N-2+2+N+D = 2*N+D,
а произведение — 2*N
как надо было делать H?
Перебор X и Y до 200-300, с перебором N точек внутри (подходят/не подходят вовнутрь треугольника)
Не подскажите, с чем может быть связана ошибка error(instantiation_error,b_PICAT_ARG_ccf)?
Это означает, что какая-то переменная используется до того, как ей присвоено значение. Конкретнее могу подсказать по коду.
https://ideone.com/1JBHiq вот... немного отредактировал... На контесте пришлось писать всё в одну строчку, иначе не получалось компилировать у себя локально в консоли((
Вместо while(IT1<=IT2) должно быть while(IT1<IT2), насколько я понимаю.
Спасибо большое!!! Только невероятно обидно... Ошибка всего в одном символе помешала пройти в следующий раунд((
Суперский раунд! Показывает приспособленность к меняющимся условиям — написать на новом языке контест. Сам язык стоило назвать "Партизан" — не говорит, где именно произошел failed ._.
Метод "удали строчку — проверь, пропала ли ошибка" работает в таких случаях довольно неплохо) Умею, практикую)
Разве не говорит? Насколько я помню, при неудачной компиляции показывается исходный код с надписью HERE в месте ошибки :)
При неудачной компиляции, но не при неудачном исполнении.
Спасибо за раунд и за знакомство с Picat! Мне нравится Prolog, и я пытался на нём что-то интересное писать… но, в общем, впечатления не всегда самые хорошие. Picat в этой связи выглядит весьма интересно.