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

Контест окончен; разбор задач доступен здесь.


Язык этого раунда — 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):


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 ранее.

Раунд Язык
VK Cup 2015 Уайлд-кард раунд 1 Picat
Surprise Language Round #7 FALSE
Пятница, 13-ое, День Программиста Ada
Surprise Language Round #6 Roco
VK Cup 2012 Уайлд-кард раунд 1 Factor
Surprise Language Round #5 COBOL
Unknown Language Round #4 Befunge
Unknown Language Round #3 Pike
Unknown Language Round #2 Io
Unknown Language Round #1 Tcl

Удачи!

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

»
9 лет назад, # |
  Проголосовать: нравится +87 Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

After the round is over, can we solve using anyother languages ??? or also just with the unknown language???

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +29 Проголосовать: не нравится

    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.

»
9 лет назад, # |
  Проголосовать: нравится -16 Проголосовать: не нравится

Очень интересно, но как-то сложновато. Участвовать могут все, но язык будет неизвестен большинству. Кумир, кстати, очень хорошо подходит)))

»
9 лет назад, # |
  Проголосовать: нравится -79 Проголосовать: не нравится

Из года в год одно и то же, может администрация codeforces уже удосужится придумать что-нить более оригинальное и более соответствующее vkcup, нежели разбираться в каком-то дерьме на скорость?

Столько всяких направлений: ML, прикладное программирование, криптография, которые можно использовать в качестве вайлд-кард раунда в крупнейшую соц сеть России, или на крайний случай можно попросить участников придумать нормальный дизайн для vk. Нет же, какая-то посредственность, непонятно каким боком вообще здесь.

»
9 лет назад, # |
  Проголосовать: нравится +133 Проголосовать: не нравится

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +24 Проголосовать: не нравится

    Next week will be CROC finals. I think it will be rated not only for the finalists.

»
9 лет назад, # |
  Проголосовать: нравится -39 Проголосовать: не нравится

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.

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится +9 Проголосовать: не нравится

:(

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится +16 Проголосовать: не нравится

This contest is suitable for who is expert in algorithms and doesn't know any language :\

I don't care....

Wana RATED CONTEST!!!

»
9 лет назад, # |
  Проголосовать: нравится +95 Проголосовать: не нравится

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

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    This week there will be two rated contests — CROC final (on Friday) and a Codeforces Div1/Div2 Round (on Saturday). :)

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится -8 Проголосовать: не нравится

only

»
9 лет назад, # |
  Проголосовать: нравится +28 Проголосовать: не нравится

Would've been such a Fantastic day for a rated contest. Instead we have a surprise language round...;(

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

В основном раунде участвуют команды, прошедшие квалификацию VK Cup.

Команды, которые уже прошли в Раунд 2, могут участвовать в основном раунде вне конкурса.

Для тех, кто прошел в Раунд 2 нельзя участвовать в основном раунде внеконкурса. Пишет, что нужно регистрироваться на интернет трансляцию.

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Можно ли сдавать решение с двух компьютеров?

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    В правилах сказано,что команда может использовать один или два компьютера на свое усмотрение,только в финале будет доступен 1 компьютер на команду

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится +12 Проголосовать: не нравится

Мы уже прошли в Раунд 2 по результатам Раунда 1 и хотим написать Уайлд-кард раунд командно вне конкурса, но если попытаться зарегистрироваться на основной раунд командой, система сообщает о том, что надо регистрироваться на интернет трансляцию. А в интернет трансляции недоступно участие командой. Как быть?

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Раз уж раунд не рейтинговый, то вы можете участвовать из под одного из ваших аккаунтов вдвоём. Хотя, возможно, это нарушит пару правил CF, ну и если у вас двоих есть пунктик по поводу "посылки должны быть от моего имени", то печально.

»
9 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

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

»
9 лет назад, # |
  Проголосовать: нравится +19 Проголосовать: не нравится

I think making educational rounds rated is the best idea ! more rated contest also with better problemset

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

А когда обьявите язык? Уже мало времени осталось. Боюсь пока будем читать документацию, половина времени может уйти.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится

    Так в этом и смысл.

    Пожалуйста, в начале контеста перечитайте этот пост целиком: в нем появится объявление языка
    
  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    В том и суть, что 2.5 часа даётся не только на решение задач, но и на изучение языка.

»
9 лет назад, # |
Rev. 3   Проголосовать: нравится -14 Проголосовать: не нравится

Игнор

»
9 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

А запуск системы будет работать на этом языке?

»
9 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится

Голова разрывается..

»
9 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Сложный язык ((

»
9 лет назад, # |
  Проголосовать: нравится +38 Проголосовать: не нравится

Так и не понял как тут вводить с клавы

»
9 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Спасибо организаторам за то, что открыли во мне талант неожиданно быстро искать документацию по языку и методом проб и ошибок понимать, за какую операцию отвечает данный символ

»
9 лет назад, # |
  Проголосовать: нравится +27 Проголосовать: не нравится

Жесть какая

»
9 лет назад, # |
  Проголосовать: нравится +93 Проголосовать: не нравится

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.

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Здравствуйте, уважаемые участники Codeforces! Ни в коем случае не хочу никого обидеть. На ваш взгляд, какую пользу приносят контесты формата Unknown Language? Навык быстрого поиска документации и умение быстро в ней разобраться? С точки зрения промышленного программирования, наверно, обычно используются известные языки, в которых разработчик хорошо разбирается.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Или это неверное утверждение?

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +31 Проголосовать: не нравится

    Это же весело!

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится

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

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +2 Проголосовать: не нравится

    Как раз в промышленном программировании очень полезно уметь читать документацию и быстро разбираться в незнакомых языках/системах! Лично мне этот навык пригождается гораздо чаще, чем, скажем, динамическое программирование (которое вне спортивного программирования мне довелось использовать ровно один раз).

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Спасибо за ответ!

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Понимаю, что часто надо быстро разбираться в незнакомом коде, новых библиотеках/фреймворках, но зная синтаксис языка. Но быстро разбираться в новом языке... в промышленном программировании? Это ж с каким качеством потом продукт получается? Где Вы работаете, чтобы случаем туда не устроиться?

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится

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

    Кроме того, даётся повод изучить какой-то необычный подход к построению языка программирования. Да такие языки мало кто использует, но многие популярные языки реализуют некоторые идеи позаимствованные из опыта вот таких языков-экспериментов

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится

      А потом глядя на нормальные решения команды с 1 места, начинаешь задумываться, о наличии у себя китайских и индусских корней.

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

У меня голова разрывалась от этого языка.))) И на какое-то время показалось, что им мало кто пользуется, т.к. инфу тяжело найти((

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    Ну не знаю как J, а другие разновидности APL типа K или Q у нас в городе довольно популярны — целое комьюнити в несколько сот человек и конференции каждый месяц. Проблема только в том, что поисковики плохо индексируют однобуквенные названия.

»
9 лет назад, # |
  Проголосовать: нравится +78 Проголосовать: не нравится

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

»
9 лет назад, # |
  Проголосовать: нравится +82 Проголосовать: не нравится

J-уткий язык

»
9 лет назад, # |
Rev. 3   Проголосовать: нравится +12 Проголосовать: не нравится

Решил две задачи. Так и не понял, как перегонять строки в массивы и можно ли получать элемент по индексу в этом дурном языке. Шикарный раунд ^_^

  • »
    »
    9 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится +9 Проголосовать: не нравится

    строка и есть массив. 0-ой элемент массива a это 0{a

    А раунд действительно шикарен

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +11 Проголосовать: не нравится

    Строки — это уже массивы. А элемент получается по (ind { arr), где ind — индекс нужного тебе элемента, arr — массив. Вместо ind можно пихать еще и массивы, кстати, тогда выберет новый массив

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +2 Проголосовать: не нравится

    Вот мне интересно, в чем прикол придумывать такие языки...

»
9 лет назад, # |
  Проголосовать: нравится +27 Проголосовать: не нравится

Даже С++ учится за 21 день, а тут какой-то непонятный язык надо за 2 часа выучить.

»
9 лет назад, # |
Rev. 5   Проголосовать: нравится 0 Проголосовать: не нравится

Забавный язык

Больше всего в этих раундах забавляют те самые костыли, которые приходится писать за неимением чего-либо более подходящего.

Например, подстроку я вырезал таким потрясающим образом:

Способ

Это можно сделать удобнее?

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    Можно например вот так:

    str =. 'thingsmustselectedchages'
    substr =. 10}. 16{. str
    

    Вырезает [10; 16).

    В контесте очень сильно помогла эта ссылка. Много непонятных значков объясняется

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится +15 Проголосовать: не нравится

Язык не понятный, но было очень прикольно:) Спасибо организаторам! Я бы даже предложил такой раунд где на каждую задачу определяется один (популярный) язык программирование, чтобы участникам приходился переходить с одного языка на другой во время тура. Вот это будет соревнование на ловкость.

»
9 лет назад, # |
  Проголосовать: нравится +17 Проголосовать: не нравится

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?

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

how did people who participated , learn this language , i could not find any recources :(