Задача №3193. Проверка числа

Данные задачи можно решить и без использования регулярных выражений, однако они собраны в этом разделе не зря)

Дано число. Требуется определить, корректно ли оно. Число может быть записано в 2-ух формах:

- обычной

- экспоненциальной

Число в обычной форме не должно содержать ведущих нулей. Знак "-" должен стоять только перед непололожительным числом и только в одном экземпляре. Число также может быть записано в двоичной, восьмеричной или шестнадцатиричной системе счисления. В различных системах счисления число будет иметь вид:

<%0x><обычная форма> - в шестнадцатиричной (состоит из цифр и маленьких латинских букв). Число знаков после "0x" не должно превышать 16.

<%0o><обычная форма> - в восьмеричной. Число знаков после "0o" не должно превышать 8.

<%0b><обычная форма> - в двоичной. Число знаков после "0b" не должно превышать 20.

Знак "-" также может быть только один и должен стоять перед символом "%". Примеры корректных чисел в обычной форме: 75, -%0x6f4,%0b101110,%0o1705.

Число в экспоненциальной форме представляет собой запись следующего вида (необязательные элементы заключены в квадратные скобки):

<число в обычной форме>[<.><неотрицательное число в обычной форме, может содержать ведущие нули, не влияющие на подсчет количества знаков и стоящие до символа "%" если число не в десятичной системе счисления>]<E>[<знак "+" или "-"><число в обычной форме>].

Примеры корректных чисел в экспоненциальной форме: 1.517E+4, -%0b101.00%0xfE–19, -7E.

Входные данные

Единственная строка, не содержащая пробелов, длиной не более 50 символов.

Выходные данные

Выведите "YES", если строка удовлетворяет условию задачи или "NO" в противном случае.

Примеры
Входные данные
74
Выходные данные
YES
Входные данные
%0x5f7.00%0b1011E-%0o71
Выходные данные
YES
Сдать: для сдачи задач необходимо войти в систему