Язык этого раунда — Ada, выбранный не за особую оригинальность (на мой вкус он слишком похож на Паскаль), а скорее за название. Язык, названный в честь Ады Лавлейс, как ничто другое подходит к профессиональному празднику программистов, а "язык Ада" — к контесту пятницы, 13-го, посвященному приметам и суевериям. Недостаточную экзотичность языка я постаралась компенсировать задачами, чуть более нетривиальными, чем обычно в SLR.
Традиционно, решение задачи "A+B" (числа могут быть заданы на одной строке):
with Ada.Integer_Text_IO;
use Ada.Integer_Text_IO;
procedure AplusB is
A, B: Integer;
begin
Get(Item => A);
Get(Item => B);
Put(Item => A + B, Width => 1);
end AplusB;
Система тестирования использует компилятор gnat версии 4.7.2. Для тестирования своих программ можно:
- воспользоваться вкладкой “Запуск” в интерфейсе контеста.
- воспользоваться ideone, язык Ada (gnat-4.6). Напоминаю, что по умолчанию анонимно присланные коды показываются в recent codes, для сохранения спортивного интереса рекомендую зарегистрироваться и использовать опцию приватности "private", или хотя бы использовать опцию “secret” (со времен прошлого раунда сайт претерпел радикальный редизайн, и названия опций изменились).
- установить его локально.
В Linux эта версия есть в репозиториях (на моем Kubuntu получилась версия 4.4.3). После установки компилятора команда gnat make file.adb
компилирует код и создает исполняемый файл. При установленном mingw можно устанавливать mingw-get install ada
и запускать командой gnatmake file.adb
.
13 сентября вас ждет Пятница, 13-ое, День Программиста, в этом году — не только профессиональный праздник, а еще и Surprise Language Round!
Правила проведения раунда:
- Соревнование будет нерейтинговым для всех участников.
- Индивидуальное соревнование по правилам ACM ICPC: положение в результатах определяется количеством решенных задач, при равном количестве — набранным штрафным временем. Изначально штрафное время участника равно 0, при каждой сданной задаче оно увеличивается на время, прошедшее с начала контеста, + 20 минут за каждую неудачную посылку до отправки правильного решения. Решение считается правильным, если оно прошло все тесты из предопределенного набора; правильно ли посланное решение, становится известно сразу. Взломов чужих решений нет.
- В раунде будет 7 задач, примерно отсортированных по сложности, и 2 часа на их решение.
- Решения задач принимаются только на одном языке, который будет объявлен в начале контеста. Язык существует давно, а не придуман нами специально для раунда.
- Пожалуйста, в начале контеста перечитайте этот пост целиком: в нем появится объявление языка, рекомендации по установке компилятора (в интерфейсе контеста будет доступен запуск программы онлайн) и полезные ссылки на документацию. В остальном изучение языка — дело рук самого участника. Для решения задач вы можете использовать любые ресурсы (но не совместное участие); ограничиваться документацией, приведенной в посте, не обязательно.
Мы надеемся, что выбранный нами язык будет незнаком большинству участников раунда.
Полный текст и комментарии »