Условие
Реализуйте класс Temperature с закрытым целочисленным полем, содержащим температуру в десятых долях градуса. Начальное значение — 0. Допустимы значения от 0 до 500 включительно.
Метод bool set_raw(int value) записывает допустимое значение и возвращает true. Если значение недопустимо, метод возвращает false, сохраняя прежнее состояние. Геттер int get_raw() const возвращает сохранённое значение, а double get_celsius() const — температуру в градусах Цельсия.
Создайте один объект и последовательно передайте ему все введённые значения через сеттер. После каждого вызова выведите успешность изменения и результаты обоих геттеров. Прямой доступ к полю из main запрещён.
Ограничения
Время: 2 секунды. Память: 64 МиБ. Вывод: до 2 МиБ. Язык: C++17.
Входные данные
В первой строке вводится число N — количество попыток изменения. Во второй строке вводятся N целых значений. Ограничения: 1 ≤ N ≤ 1000, −1000 ≤ value ≤ 1000.
Выходные данные
Выведите N строк. Каждая содержит через пробел OK или ERROR, текущее значение в десятых долях градуса и значение в градусах Цельсия с шестью знаками после десятичной точки. Статус относится к текущему вызову сеттера, значения — к состоянию объекта после вызова.
Примеры
3 250 500 0
OK 250 25.000000 OK 500 50.000000 OK 0 0.000000
3 -1 270 501
ERROR 0 0.000000 OK 270 27.000000 ERROR 270 27.000000
2 0 0
OK 0 0.000000 OK 0 0.000000