YAPC::Russia::Golf 2008
YAPC::Russia::Golf — конкурс на решение задачи самым коротким способом, который проводился на конференции YAPC::Russia «May Perl» 2008 17 и 18 мая 2008 года в Москве.
Победителем считается
тот, кто напишет такую программу, которая содержит минимальное число непробельных символов. При решении можно пользоваться любыми ключами интерпретатора (например,
Решение нужно было прислать на адрес golf@yapcrussia.org не позднее 14 часов 18 мая 2008 г. Разбор решений и вручение призов состоялся 18 мая в 15:30 в первом зале.
Задача 1
С помощью регулярного выражения легко понять, что число делится на 4 нацело:
#!perl
while(<>) {
if( /[02468][048]$/ || /[13579][26]$/ || /^[048]/ ) {
print "yes\n";
} else {
print "no\n";
}
}Попробуйте написать без использования арифметических, битовых, строковых операций и без оператора x (только управляющие конструкции и регулярные выражения) проверку делимости на 11. На STDIN подаются натуральные числа, меньшие 1080. Для каждого, если число делится нацело, напечатать yes, если не делится — no.
| Пример входных данных | Пример выходных данных |
| 4 | no |
| 33 | yes |
| 910095859353843713526357940283 | yes |
| 9117517 | no |
Задача 2
На STDIN на отдельной строке задаётся число N, после чего идет блок из строк одинаковой длины, состоящих из пробелов и символов #. Длина строк — не более 200, количество строк — не более 200.
Нужно найти максимальное число символов #, попадающих в любой из прямоугольников, площадью точно равных N и всеми своими клетками лежащих внутри заданного блока.
Пример входных данных

Пример выходных данных
14
Пояснение. Прямоугольников 1 × 25 целиком не помещается ни одного, поэтому их мы не учитываем совсем, прямоугольники 25 × 1 накрывают максимум 13 клеток, а прямоугольник
5 × 5, накрывающий 14 символов, показан ниже:
