Читаем без скачивания Мальчик, который уничтожил мир (СИ) - Роса Дженни
Шрифт:
Интервал:
Закладка:
- И откуда ты такой честный? Честный и глупый! - Возмущалась она.
В споре я, конечно, победил. Можно сказать, что "девочку включил". Топая ножками по полу, кричал: "Не хочу, не буду!". Выбросили задания в мусор, и обиженные сидели на разных сторонах кровати. Вечером она сама пришла мириться. И что бы ни говорили, но примирительный секс не так уж и хорош. Лучше не ссориться, или спать после на разных кроватях.
Настали выходные, которые мы пробегали по городу. Марине Вадимовне прямо необходимо было всё посмотреть и нам показать. Театр! Я за всю жизнь столько по театрам не ходил. Зато обедали в приличных ресторанах. Наш руководитель не соглашалась на обычный общепит.
Наконец началась олимпиада. Согнали кучу ботанов-студентов в актовый зал. Рассадили всех за парты и выдали задание. В первый день выдали задания по математике: сложение, вычитание, умножение и деление. Вроде бы просто, но числа в двоичной, восьмиричной и шестнадцатиричной системе исчисления. Ещё и в 64 разряда, чтоб калькуляторами не пользовались. Даже в самых крутых калькуляторах цифр не хватит число ввести.
Не зная метода решения таких математических примеров, даже компьютер не поможет. А если знаешь, как решать, то всё сводиться к умению оперировать в нестандартной системе исчисления. Не можешь F прибавить к A в уме, то переводи в десятичную систему, прибавляй и переводи обратно. Ничего сложного, только время уходит уйма.
Я две третьи задания решил "на ура". А вот с восьмиричной системой исчисления пришлось повозиться - не используется она в программировании.
После того как собрали листки с решениями, в актовом зале устроили выступления коллективов творческой самодеятельности. Целый час мы смотрели песни и пляски, а также зачитывания стихов местных детишек.
Только после того как сцену покинул мальчик, рассказавший стих про родину, нам огласили результаты олимпиады. Как и ожидалось, первое место мы не заняли. Хотя в пятёрку вошли. Всё-таки кучка гиков и задротов понаехала. Как я вообще здесь оказался? Неужели я такой же?!
Дальше всё было так, как распланировала Марина Вадимовна. Обед. Экскурсия по городу. Ужин. Секс, но только в моем личном расписании. Сколько бы студенты не слушали наши стоны и скрип кровати, сами оставались равнодушны друг к другу. До сих пор общаются как незнакомые люди.
В следующий день испытаний нам выдали набор логических задач. Для составления программ требовались только стандартные операторы условного перехода и циклы. Всё в рамках программы обучения. Смотрели только правильность построения логики, а по времени только формально ограничивали. Так-то все закончили раньше времени.
Для работы на каждом столе стояло по компьютеру, с установленным на нем "борланд С". Вот такие вот древности!
Как ни странно, но в этом конкурсе были свои аутсайдеры. Некоторые не смогли распознать необходимость использования цикла с проверкой условия в конце цикла. Такой цикл все изучают, но применять его практически негде. И на этой хитрой задаче половина и завалилась. Хоть их программы и работали, но уже не так как требовалось. Вдобавок у некоторых вылезли ошибки по невнимательности. И как результат наша команда была в лидерах, наряду с ещё двумя группами.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Третий день был посвящён работе с массивами. И тут уже проверялась скорость работы программы. Необходимо было отсортировать все элементы базы данных, и как оказалось способов сортировки несколько десятков. Вот сам бы никогда не подумал! И побеждала та команда, которая составит самый скоростной код программы. Вот тут и пригодились мои познания в ассемблере. Так как язык С позволяет делать фрагменты кода на низкоуровневом языке, то и правила при этом не нарушаются. Но вот только немногие знают об этой лазейке, а кто знает, тот не умеет. В состязании счет идет на миллисекунды, и моя программа оказалась самой скоростной. Ну почти... Только один хитрец меня обогнал, но только за счет того, что его программа обрабатывала только половину массива. Как результат, она быстрей в два раза среднего показателя. Но читер и не подумал, что будут сверять правильность результатов работы программы. На этом он и запоролся. Похлопал невинно глазками, сказал "Ой, ошибся!". Мне хотелось его убить за такую наглость, а его только пожалели. Сказали "Ошибся? С кем не бывает!".Ну, хоть в хвост рейтинга скинули мошенника. И я красовался в лидерах общего соревнования. Так же наша команда была первой по среднему времени. Хоть и наши студенты были в середине рейтинга. Но я - молодец. Я нас всех вытянул.
В тот вечер меня ещё и Маша наградила за заслуги. Чуть не сломали кровать!
Следующее задание было на вычисление числа ПИ до миллионного знака. Я сразу заявил, что это бред. Так как этим занимаются, только чтоб крутость компьютера проверить. Алгоритм давно отработан, оптимизирован и выложен в интернет. А нормальные программисты не в курсе, по каким хитрым формулам это всё рассчитывать.
Моё возмущение многие подержали, и мы дружно сломали систему. Организаторы разрешили пользоваться интернетом. Но только для поиска формулы. Нажатием одной кнопочки у всех появился интернет.
Писать код никто не стал, просто скачали. Победила дружба! Все были рады, ну кроме организаторов. Программу тестировали на скорость, но она (и скорость, и программа) оказалась у всех одинакова.
Последний день был уже более продуманный. На стенде были написаны формулы из геометрии. Уравнение прямой, круга и кривой Безье. Каждое уравнение было с пояснительным рисунком, и кратким описанием.
Задание подразумевало коллективную работу. И, похоже, это наше слабое место. Так как коллектив из нас никакой. Нам выдали данные записанные в массив, а из него мы должны получить картинку. Если с кругом ещё понятно: центр и радиус. То с кривой Безье пришлось поломать голову.
Я как лидер группы распределил обязанности. Девочка-мышь (так и не запомнил, как зовут) делала модуль отрисовки круга по данным из массива. Мальчику отдал кривую Безье. Сам же взял себе прямую и общий алгоритм обработки. Накидал им формат входящих данных и исходящих. И мы дружно взялись за работу.
Первой закончила работу мышь. Так как у меня ещё не был готов главный модуль, чтоб проверить работу, то отправил её помогать мальчику. Ну, или стоять над душой - как получится. Сам же мучился с прямой. То ещё занятие! Прямую горизонтальную или вертикальную линию нарисовать легко. Чуть сложней произвольную в пространстве. И совсем сложно по математическим формулам, и неизвестным данным. Нарисовалась одна линия - а я не знаю, так она должна выглядеть или нет.