Final Exam

В конце каждого семестра проводится итоговая контрольная работа.
По итогам первого семестра предлагалась на 3 часа работа состоящая из 10 задач для нескольких категорий студентов по уровню текущей успеваемости.
Первые 4 задачи от А до D соответствовали нескольким базовым темам полностью рассмотренным на занятиях.
Задачи E и F (составленные Александром Сергеевичем Антоненко) требовали несколько больших размышлений перед решением.
Задачи G и H на самом деле являлись одной задачей — решение задачи H легко может быть написано таким образом, чтобы задача G тоже проходила все тесты.
Две последние задачи I и J были составлены мной достаточно давно для (как я тогда искренне считал!) простого пробного тура финального этапа Всеукраинской олимпиады по программированию. Т.е. я считал их слишком простыми для серьёзной олимпиады. На данной контрольной эти задачи предназначались для студентов, перевыполнивших учебный план. Обе задачи хоть и олимпиадного уровня, но не громоздкие с точки зрения программной реализации.
В настоящее время экзамен временно НЕ доступен в режиме «дорешивания» по адресу http://acm.onu.edu.ua/cgi-bin/register?contest_id=48.

Чуть позже здесь появится разбор некоторых (или всех?) задач. Или нет.

Да! Меня попросили побыстрее опубликовать авторское решение для задачи H. Вызывает разумные сомнения возможность вычислить 19-ю цифру в числе. Ведь на сервере сейчас используется компилятор в котором невозможно использовать более чем 64 битные целые числа. Действительно это не так просто. Самое большое число, которым мы можем оперировать не привлекая «длинной арифметики» состоит всего из 20 цифр — 18 446 744 073 709 551 615. Т.е. не всякое 20-значное число поместится. Но 19-значное поместится. Значит принципиальная возможность всё же есть. Только не нужно допускать выхода за эти пределы результатов промежуточных вычислений.
Для тех кто не верит, и не хочет думать сам, публикую авторский код, который проходит все тесты:

Код абсолютно рабочий. Просто я заодно решил показать Вам к чему приводит отсутствие «лесенки» и нормального именования переменных. Есть даже специальный сайт и международный конкурс «запутывателей» (Obfuscate) программного кода.

Мазурок Игорь Евгеньевич

Мазурок Игорь Евгеньевич

Разработчик программного и информационного обеспечения.
Доцент Одесского национального университета имени И.И.Мечникова
Учёный в области защиты и противодейтствия в интеллектуальных информационных системах
Мазурок Игорь Евгеньевич

Latest posts by Мазурок Игорь Евгеньевич (see all)

Добавить комментарий