Раунд окончен, разбор задач (если он вообще нужен :-)) здесь. Да, со сложностью задач я не угадала — но кто ж знал, какие люди подтянутся и порешают все за 40 минут! Поздравляю победителей, самый неспешный из которых уложился в час времени :-)
Язык сегодняшнего раунда — Roco, малоизвестный эзотерический язык с особым подходом к циклам и подпрограммам. Программы на нем выглядят несколько громоздко, особенно по сравнению с Befunge, но это компенсируется их сравнительной простой и понятностью. Вот пример программы, вычисляющей сумму двух заданных чисел:
iin [0]
iin [1]
add [2] [1] [0]
iout [2]
ac
Информации об этом языке в интернетах очень мало: мне известны только авторский сайт языка и статья в Прогопедии с прокомментированными примерами программ.
Интерпретатор у языка тоже ровно один, авторский. Для запуска интерпретатора необходимо иметь установленный C++ (и автор, и мы используем g++), скомпилировать код интерпретатора в исполняемый файл и запускать программы командой "roco program.roco". Скачать интерпретатор (исходник и скомпилированные файлы) можно здесь.
25 мая вас ждет Surprise Language Round #6. Этот раунд посвящен важному для меня событию — неделю назад исполнилось ровно пять лет проекту Progopedia (и два с половиной года с тех пор, как к проекту присоединилась я). Чтобы отпраздновать эту приятно округлую дату, мы сделали раунд призовым: участники, занявшие первые 5 мест, получат футболки (да не простые Codeforces-футболки, а специальные SLR-футболки). Кстати, их дизайн еще не утвержден, можно предлагать что-нибудь эдакое, идейное или забавное, а лучше и то и то сразу.
Правила проведения раунда:
- Соревнование будет нерейтинговым для всех участников.
- Индивидуальное соревнование по правилам ACM ICPC: положение в результатах определяется количеством решенных задач, при равном количестве — набранным штрафным временем. Изначально штрафное время участника равно 0, при каждой сданной задаче оно увеличивается на время, прошедшее с начала контеста, + 20 минут за каждую неудачную посылку до отправки правильного решения. Решение считается правильным, если оно прошло все тесты из предопределенного набора; правильно ли посланное решение, становится известно сразу. Взломов чужих решений нет.
- В раунде будет 8 задач, примерно отсортированных по сложности, и 2 часа на их решение.
- Решения задач принимаются только на одном языке, который будет объявлен в начале контеста. Язык существует давно, а не придуман нами специально для раунда.
- Пожалуйста, в начале контеста перечитайте этот пост целиком: в нем появится объявление языка, рекомендации по установке компилятора (также в интерфейсе контеста будет доступен запуск программы онлайн) и полезные ссылки на документацию. В остальном изучение языка — дело рук самого участника. Для решения задач вы можете использовать любые ресурсы (но не коллективное участие); ограничиваться документацией, приведенной в посте, не обязательно.
Мы надеемся, что выбранный нами язык будет незнаком большинству участников раунда. Для справки приведу список раундов такого типа, которые проводились на Codeforces ранее.
Всем удачи!
А не выложить ли ссылку на общедоступный источник?
http://progopedia.ru/users/Nickolas/
Nimrod выглядит классно. Если это будет APL — я пропускаю раунд. Надеюсь, что на самом деле будет ни то, ни другое, и что это будет больше похоже на первое.
После прошлого раунда было бы несколько наивно надеяться, что язык со страницы моих свежих правок станет сюрпризом для сообщества, не правда ли? Так что я думаю, что все не так тривиально :-)
Жаль, что на прошлом раунде это было гораздо важнее...
А на Malbolge — по-круче писать будет чем на APL.
Вопрос: компилятор под Linux есть у этого языка?
Обязательно. У меня у самой Kubuntu, и с языками "только под Windows" я не очень дружу.
Отлично! Благодарю за хорошую новость!
^ Линуксоиды детектед!
Хоть я сам сижу на Windows, но что плохого в том, что человек пользуется Linux'ом?
Господа минусующие, вы все линуксоиды? о.О
Нет. Просто твои комментарии не несут в себе смысловой нагрузки. А это считается глупым флудом.
А Surprise Language Round не влияет на рейтинг. Считать ли его глупым способом убить время?
SLR влияет на мозг. А вообще, считайте его чем хотите, лично я не против.
Хорошо или плохо влияет? :-)
Edit. Хотя обычный раунд на рейтинг тоже неоднозначно влияет.
Ну... Это как обливаться холодной водой. Можно заболеть, а вообще закалка)
А Вы кто?
Яблочник. И горжусь этим!
Ну на этой платформе языков не много.
Так проверьте себя. Вам дадут ссылки на описание языка, компиляторы. Язык будет более чем не стандартный.
Надо будет за 2 часа всё освоить и решить несколько задач.
Все просто :)
Дакажите, что Вы не "яблочник", а Программист.
А чего alexey.shchepin помечен, как вне конкурса?
В некотором смысле он помог с организацией раунда. За что ему спасибо :)
Хотелось бы спросить, не планируется ли отдельный рейтинг для SLRов?
В ближайшее время — нет
I think you should parody those Code Jam "What language do you speak?" shirts with whacky languages :D
А интерпретатор? UPD. Я слепой.
вопрос, а как перейти на новую строку? так неработает
UPD. нашел, нужно было писать так
По-моему, достаточно cout 10
Долбаная ненависть, я на это угробил добрую тонну нервных клеток)
Спасибо за контест, было весело =) .
А вот задач оказалось маловато.
Всегда пожалуйста :-)
Та да, в этот раз я как-то недооценила участников. Видимо, надо взять на вооружение практику контестов типа Ch24, где в середине контеста можно добавить еще задачу, чтобы лидеры не скучали. Или сразу готовить с запасом.
Да, только тогда нужно, чтобы возможность этого была в правилах заранее (и, конечно, поддерживалась системой Codeforces).
Конечно — давать задачу на втором часу без предупреждения было бы просто неспортивно по одношению к тем, кто порешал все за 40 минут и удалился вкушать заслуженный отдых :-)
Сколько там говорите футболок? :(
Say good-bey to T-shirt... T_T Congratulate to the top-5 who made it. Will there be any T-shirts in future Unknown/Surprise Language Round?
Вообще очень весёлые раунды, спасибо автору за приятно проведённое время)
Поучаствовал впервые, весело, понравилось.
Единственное, что не понравилось, что мозг включать практически не пришлось:( Мне кажется 1-2 задачки посложнее должно быть всё-таки.
Ну и по-моему странно все же, когда из раунда в раунд одна и та же задача, хотя и понятно, что умение решать ее на одном языке никак не помогает решать на другом.
Ну и поздравляю победителей!
I find it funny how all of my solutions ended with "AC" :)
Благодаря этому контесту будем знать как сортировать массив без массива. Большое спасибо)
А можно было и с массивом...
Ненавижу кнопку "Запуск".
Дебажил правильную программу 15 минут из-за того, что перевод строки не поставил в окошке инпута. Получался стек оверфлоу. А прерывать чтение кроме как по переводу строки вроде бы и нельзя.
FEATURE REQUEST: Сделайте автодобавление символа конца строки, если его нет. При взломах и в окошке инпута в запуске. Тем более что так уже сделано на полигоне.
А язык классный, жалко опоздал на полчаса
Решил 6 => тупняк "а почему оно не работает" => RTFM => оказывается там корутины и они состояние помнят => еще 2. В целом понравилось, но хоть пару задач бы посложнее
Вот задача посложнее:
С клавиатурой и пытаться не стоит :)
Да ну, ничего сложного. Полтора часа и готово :)
Спасибо за контест. Довольно забавный язык, сложно работать без имен переменных.
Как понять iin 0? UPD: Я по идее написал так
Это указатель. Т.е. ввести значение в переменную с индексом, номер которого хранится в переменной [0]. Если в [0] хранится 9, то значение будет положено в [9].
I somehow managed this without understanding the semantics of the coroutines... I just treated "ac" as "return" and then got really lost when my programs would continue past the return line. Now that I've taken the time to read more about the language, everything makes sooooo much more sense.
Thanks for another awesome SLR :D :D :D
Включите дорешивание, плз
Nice contest! However, I think the contest would be more interesting if there were more difficult "algorithmic" problems, so we can have more interesting scoreboard. The current problems are like "implement standard problems using a new language" :)
I think the scoreboard is interesting enough. I see 17 red people there, with 14 of them in top 30, even though the problems are like "implement standard problems using a new language.”
Thank you for another nice contest!
In Roco, what's the relation of [0] and [[0]]?
Thanks.
[[0]] is a pointer. E.g. asking [[n]] means that you ask variable with index [n]. If n is 3 and [3] is 4 than [[3]] <=> [4].
For the sorting problem I have used Counting Sort algortihm...But there's something wrong in my code that I cannot figure out..I testes my code with 2 2 1 and the out put is 1 2 3 3 3 3 3 3 3.......3
Can Someone tell me where I am going wrong.. Code
Have you noticed that "When a coroutine is called, its execution starts not from the start, but from the last position of its instruction pointer"?
Thanks .. I over looked it... Here's the accepted version->Code
I did all the problems in 5-8 minutes each except for this one which took me like... 23 because of exactly the same problem XD
Apparently it pays to actually read the documentation.
Nice to know I wasn't the only one who suffered through that... Can you see any application in which this behavior actually makes sense?
This is an esoteric language; they are not meant to make any sense :-)
Nice language! I've just learnt another interesting language. Let's see if someone (especially participants of this contest) will use it for Google Code Jam Round 2 tomorrow :D
Any idea why the following is an infinite loop? Seems it has the potential to become a candidate problem:)
co infinite_loop
{
eq [[0]] [0] 0 // isn't [[0]] == [0] == 1 after executing this sentence,
if [[0]] ac // then exit the coroutine?
}
set [0] 0
ca infinite_loop
ac
if [[0]] ac
But that is really:
if [1] ac
And that's never true.
[[0]]=[0]
. Aftereq [[0]] [0] 0
[0]=1
So
[[0]]=[1]=0
Your explanation makes sense.
Забавно, что последней строчкой в программе должно быть
ac
Можно сделать yi ololo, где ololo — подпрограмма, которая сама сделает ac
Интересные задачи, интересный язык, но жаль, чтоб не судьба решить больше одной задачи.
Интереснее языка я еще не встречал. Пичалька, что не смог принять участие:(
If any of you are interested in participating in an external surprise language contest, there is a contest starting tomorrow(3rd march) at 12:30 Gmt.
Contest Link: http://chaos.techkriti.org