Контест окончен; разбор задач доступен здесь.
Язык этого раунда — J.
Традиционная программа A+B (числа A и B записаны в одной строке и разделены пробелом) выглядит следущим образом:
print =: 1!:2&2
read =: 1!:1[3
in =. (read-.LF)-.CR
print +/ ". in
exit ''
Основной источник информации о языке — сайт http://code.jsoftware.com/wiki/Main_Page. Используется версия J804. Несколько замечаний:
- для локального тестирования программ используйте команду jsonsole solution.ijs < input.txt. Возможно также использовать jsonsole solution.ijs, в этом случае после ввода теста нажмите Ctrl+z+Enter.
- кроме того, вы можете запустить ваши решения на платформе Codeforces, используя вкладку Запуск.
- язык не компилируемый, если код синтаксически неправильный, вы получите вердикт "Неправильный ответ на тесте 1".
- обратите внимание на то, что на платформе Codeforces используются переносы строк в формате Windows, #13#10.
Скачать язык можно с http://www.jsoftware.com/download/j804/install/ или с зеркала Codeforces (пароль d12595cdb253e0fb):
- http://assets.codeforces.com/files/vk/vkcup-2016-wr1-windows.7z
- http://assets.codeforces.com/files/vk/vkcup-2016-wr1-linux.7z
- http://assets.codeforces.com/files/vk/vkcup-2016-wr1-mac.7z
10 апреля в 19:35 (московское время) состоится первый Уайлд-кард раунд VK Cup 2016, который будет проведен в формате 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 ранее.
Удачи!
After the round is over, can we solve using anyother languages ??? or also just with the unknown language???
Only that language, I believe.
I don't think there's much value in solving problems from Surprise Language Rounds in normal languages, since the problems become much easier without language restriction.
So the difficulty is in the language not in the tasks... Ok thanks :D
Lol of course, that is the whole point of that round :|
Очень интересно, но как-то сложновато. Участвовать могут все, но язык будет неизвестен большинству. Кумир, кстати, очень хорошо подходит)))
Особенно англоязычным участникам.
Из года в год одно и то же, может администрация codeforces уже удосужится придумать что-нить более оригинальное и более соответствующее vkcup, нежели разбираться в каком-то дерьме на скорость?
Столько всяких направлений: ML, прикладное программирование, криптография, которые можно использовать в качестве вайлд-кард раунда в крупнейшую соц сеть России, или на крайний случай можно попросить участников придумать нормальный дизайн для vk. Нет же, какая-то посредственность, непонятно каким боком вообще здесь.
Обычно интересную задачу дают на Уайлд-кард раунде 2, например в VK Cup 2015 - Уайлд-кард раунд 2 была задача на разработку системы антиплагиата решений, а в VK Cup 2012 Уайлд-кард раунд 2 была задача про размещение прямоугольников на плоскости.
Next week will be CROC finals. I think it will be rated not only for the finalists.
Hello everybody!
The 27-hour Qualification Round for Google Code Jam 2016 has begun. You must score at least 30 points to qualify for Round 1.
:(
This contest is suitable for who is expert in algorithms and doesn't know any language :\
I don't care....
Wana RATED CONTEST!!!
So... next rated contest in two weeks? Or is there going to be one Div.2 Only contest before 2 weeks to make us stop complaining? No, I guess a Div.2 Only contest is too much, you're gonna make Educational Round 12 instead.
WE NEED NORMAL DIV.1 AND DIV.2 CODEFORCES ROUNDS
This week there will be two rated contests — CROC final (on Friday) and a Codeforces Div1/Div2 Round (on Saturday). :)
only
Would've been such a Fantastic day for a rated contest. Instead we have a surprise language round...;(
Forget about rated contests
Для тех, кто прошел в Раунд 2 нельзя участвовать в основном раунде внеконкурса. Пишет, что нужно регистрироваться на интернет трансляцию.
Можно ли сдавать решение с двух компьютеров?
В правилах сказано,что команда может использовать один или два компьютера на свое усмотрение,только в финале будет доступен 1 компьютер на команду
Мы уже прошли в Раунд 2 по результатам Раунда 1 и хотим написать Уайлд-кард раунд командно вне конкурса, но если попытаться зарегистрироваться на основной раунд командой, система сообщает о том, что надо регистрироваться на интернет трансляцию. А в интернет трансляции недоступно участие командой. Как быть?
Раз уж раунд не рейтинговый, то вы можете участвовать из под одного из ваших аккаунтов вдвоём. Хотя, возможно, это нарушит пару правил CF, ну и если у вас двоих есть пунктик по поводу "посылки должны быть от моего имени", то печально.
It is injustice. Because, one person knows "Surprise Language" and you don't know, but you are more clever than him. The strongest programmers must pass to Round 2
I think making educational rounds rated is the best idea ! more rated contest also with better problemset
А когда обьявите язык? Уже мало времени осталось. Боюсь пока будем читать документацию, половина времени может уйти.
Так в этом и смысл.
То есть язык обьявят сразу после того как дадут старт?
Да.
В том и суть, что 2.5 часа даётся не только на решение задач, но и на изучение языка.
Игнор
Какой?
Экстрасенс?
откуда это так?
Спойлерить не буду :D
Пароль сбрутфорсил?
Сыщик я, а не взломщик.
Смотря на прошлогодний пароль — он должен был начать угадывать пароль брутом за пару лет до того, как начали планировать проводить эти вк капы.
А запуск системы будет работать на этом языке?
Лол, вот это палево.
Голова разрывается..
Сложный язык ((
Так и не понял как тут вводить с клавы
1!:1(3)
Вот инфа
А я не понял куда код писать
Спасибо организаторам за то, что открыли во мне талант неожиданно быстро искать документацию по языку и методом проб и ошибок понимать, за какую операцию отвечает данный символ
Жесть какая
Yesterday I was looking for unusual languages, trying to code in 8 different languages in GCJ qualification round. I checked J, tried to learn it, and (mostly) failed.
Hours later.
The language of this round is J.
FML.
Здравствуйте, уважаемые участники Codeforces! Ни в коем случае не хочу никого обидеть. На ваш взгляд, какую пользу приносят контесты формата Unknown Language? Навык быстрого поиска документации и умение быстро в ней разобраться? С точки зрения промышленного программирования, наверно, обычно используются известные языки, в которых разработчик хорошо разбирается.
Или это неверное утверждение?
Это же весело!
Может быть есть еще что-нибудь?
Имхо, суть таких раундов заключается в проверке умения быстро найти нужную информацию, разобраться в ней и кроме всего прочего адаптироваться к непривычным условиям
Спасибо!
Как раз в промышленном программировании очень полезно уметь читать документацию и быстро разбираться в незнакомых языках/системах! Лично мне этот навык пригождается гораздо чаще, чем, скажем, динамическое программирование (которое вне спортивного программирования мне довелось использовать ровно один раз).
Спасибо за ответ!
Понимаю, что часто надо быстро разбираться в незнакомом коде, новых библиотеках/фреймворках, но зная синтаксис языка. Но быстро разбираться в новом языке... в промышленном программировании? Это ж с каким качеством потом продукт получается? Где Вы работаете, чтобы случаем туда не устроиться?
Есть особый фан от творческого процесса, когда у тебя сильный дефицит работающих конструкций, нужно исхитриться, чтобы получить требуемый результат. Если глянуть на отосланные решения — врядли ты там найдешь 2 одинаковых
Кроме того, даётся повод изучить какой-то необычный подход к построению языка программирования. Да такие языки мало кто использует, но многие популярные языки реализуют некоторые идеи позаимствованные из опыта вот таких языков-экспериментов
А потом глядя на нормальные решения команды с 1 места, начинаешь задумываться, о наличии у себя китайских и индусских корней.
У меня голова разрывалась от этого языка.))) И на какое-то время показалось, что им мало кто пользуется, т.к. инфу тяжело найти((
Ну не знаю как J, а другие разновидности APL типа K или Q у нас в городе довольно популярны — целое комьюнити в несколько сот человек и конференции каждый месяц. Проблема только в том, что поисковики плохо индексируют однобуквенные названия.
Сложность освоения и полная нечитаемость этого языка, о которых можно судить по малому количеству сабмитов и удачных попыток, говорят о том, что это абсолютно бесполезный язык, и вдобавок программирование на нем чревато психическими расстройствами.
J-уткий язык
Решил две задачи. Так и не понял, как перегонять строки в массивы и можно ли получать элемент по индексу в этом дурном языке. Шикарный раунд ^_^
строка и есть массив. 0-ой элемент массива a это 0{a
А раунд действительно шикарен
Строки — это уже массивы. А элемент получается по (ind { arr), где ind — индекс нужного тебе элемента, arr — массив. Вместо ind можно пихать еще и массивы, кстати, тогда выберет новый массив
Вот мне интересно, в чем прикол придумывать такие языки...
Даже С++ учится за 21 день, а тут какой-то непонятный язык надо за 2 часа выучить.
Забавный язык
Больше всего в этих раундах забавляют те самые костыли, которые приходится писать за неимением чего-либо более подходящего.
Например, подстроку я вырезал таким потрясающим образом:
Генерил арифметическую прогрессию с шагом 1 длины (длина строки минус длина нужной подстроки).
as =. i.((# s) — 1)
Потом генерил последовательность такой же длины из чисел, означающих начало подстроки.
ads =. ((# s) — 1) (символ доллара, что-то совсем плохо с латехом у меня) 1
Складывал их.
res =. as + ads
И вынимал буквы по этому массиву.
print res { s
Это можно сделать удобнее?
Можно например вот так:
Вырезает [10; 16).
В контесте очень сильно помогла эта ссылка. Много непонятных значков объясняется
Язык не понятный, но было очень прикольно:) Спасибо организаторам! Я бы даже предложил такой раунд где на каждую задачу определяется один (популярный) язык программирование, чтобы участникам приходился переходить с одного языка на другой во время тура. Вот это будет соревнование на ловкость.
So, what is the most distinctive feature of J? (The wiki's FAQ pages give error messages.) What is its mission that makes it the optimal choice for some domain?
how did people who participated , learn this language , i could not find any recources :(
Verbs + Manual + Examples