В задании получаем адрес сервера. Подключаемся к нему и видим следующую картину:
Декодируем QR и получаем такую строчку:
23.23684328275202 + 36.95195957854773 / 58.913049311348516 =
То есть надо ещё уравнение решить. Но проблема в том, что на всё это есть только 3 секунды:
Значит надо писать скрипт. Тут возникает пара проблем. Во-первых, с сервера мы не получаем картинку. Мы получаем байты, которые после декодирования дают нам картинку. А для декодирования нужна именно картинка. Соответственно, надо создать изображение QR на основе этих байтов, потом декодировать, а потом решить задачку.
Ну давайте решать всё постепенно. Сначала подключимся к серверу и получим сами байты изображения:
Дальше попробуем определить какие байты отвечают за красный цвет и какие за белый. Выведем полученные данные на экран и увидим огромное полотно вот таких байт:
Ничего не понятно. Давайте разделим строки и посмотрим на какой строке есть и красные и белые знаки:
Так, теперь посмотрим на 6 строку в байтах:
Ну тут уже можно догадаться, что за белый цвет отвечает последовательность \x1b[0m\x1b[7m а за красный — \x1b[0m\x1b]41m.
Есть и другие байты, но они стоят по краям, возможно, просто для выравнивания.
Значит теперь определим красный и белый цвета, дальше разобьем строки по пробелам и оставим в строках только последовательности для белого и красного цветов:
Теперь создадим чёрно-белое изображение и заполним его данными:
Осталось только декодировать QR, решить уравнение и отправить ответ:
Полный скрипт: