И в чем тут вообще принято писать? Какой текстовый редактор? Vi, Emacs? Глянув на руки соседа по терминалу, убедился, что минималистичный Vi. Ну и хорошо. Здорово было бы еще его исходники дернуть, как и более навороченного Емакса.
Написал, наверное, первым. Чуть дым из-под клавиатуры не пошел от моей скорости набора. Но важна-то не она, а время выполнения программы.
2.2 секунды. Ох, Семён Семёныч, не просто так ты нам «элементарную» задачу поручил. Неподалеку чертыхнулся еще один студент, скорее всего, получивший тот же или похожий результат. И как тут оптимизировать?
— Мистер Гарланд, я могу использовать ассемблер? — спросил один из соучеников, парень с длинными, как у рокера, волосами, стянутыми в хвост.
— Это было бы неспортивно. Не все тут изучали машинный язык PDP-11. Но это возможный выход. При использовании ассемблера вы бы получили порядка 1.2 секунды.
И как? Что-то такое на краю сознания зудело. Основные потери времени здесь не в копировании байтов памяти, а на самом цикле. А как быстрее? Убрать накладные расходы на обслуживание цикла можно через goto! Но чувствую, меня за его применение расстреляют на месте без суда и следствия.
«Не использовать метки и переходы по ним» — одна из первых заповедей программиста. Я бы сам всех собак на джуна спустил, примени он настолько грязное решение. Хотя в данном случае оно смотрелось бы не так и плохо.
Если goto — это выход, то надо, чтобы работало как с ним, но без него. Закрыл глаза и погрузился в недра воспоминаний. Решение продолжало напрашиваться, но никак не рождалось.
А стоит ли мне вообще напрягаться? Ну не совершу я невозможное. И что? С занятий меня не выгонят, двойку не поставят. Уважение не вычтут. Подозреваю, что в учебный план это занятие вписано специально, чтобы избавить нас от иллюзий о всемогущем Си. Но выпендриться-то хочется! Грешен — немного тщеславен и люблю купаться в лучах обожания коллег. Нравится мне, когда вокруг кодеры паникуют, и тут я весь такой из себя Д’Артаньян и решаю проблему парой строк кода.
— Да это невозможно! — воскликнул парень позади меня.
— Профессор Гарланд, а можете вы показать своё решение? — обратился еще один.
«Профессором» у пендехостанцев принято называть любого, кто ведет занятие, даже если это всего-то аспирант, мало отличающийся по статусу от студента.
Да что же они все так орут! Еще и дышат громко! И сердцами стучат. Или это у меня самого тахикардия началась?
Время занятия шло, я мысленно готовился к провалу, а решение все не вспоминалось. Чтобы успокоиться надел наушники, нажал на кнопку плеера и снова прикрыл глаза. Заиграли мексиканские трубы и меня окутал волшебный баритон Джонни Кэша.
