Ограничения: время – 200ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
В электронных таблицах можно использовать две формы для указания в формуле адреса ячейки.
По умолчанию адрес ячейки состоит из буквенного обозначения столбца и номера строки. Столбец 1
обозначается A, столбец 2 – B, …, столбец 26 – Z. Следующие столбцы обозначаются двумя буквами,
столбец 27 – AA, столбец 28 – AB, …, столбец 52 – AZ, столбец 53 – BA и так далее.
Аналогично, после столбца ZZ идет столбец AAA, затем AAB и так далее. Для определения, где
находится указанная в формуле ячейка, требуется хорошее знание латинского алфавита.
Также большой проблемой становится изменение формул при копировании. Формула "A1+B1" превращается в
соседней справа ячейке в "B1+C1", а в соседней снизу ячейке — в "A2+B2", так как адрес ячейки считается
относительным. Для жесткой привязки адреса ячейки к определенному столбцу или строке
перед буквенным обозначением столбца и/или номером строки нужно поставить символ $ (доллар): $A$1 (адрес
не меняется), $A1 (может меняться только номер строки), A$1 (может меняться только столбец).
Гораздо удобнее обращаться к ячейке по номеру ее строки и столбца в форме R`n`C`m`, где `n` - номер строки,
а `m` - номер столбца, например, R1C1. Вместо абсолютного номера строки или столбца можно указать смещение по отношению к ячейке, содержащей формулу, в квадратных скобках. Смещение может быть как положительным, так и отрицательным. При нулевом смещении квадратные скобки и ноль опускаются.
Например, RC[-1] обозначает адрес соседней слева ячейки, а R[2]C[1] – ячейки,
находящейся на 2 строки ниже и на 1 столбец правее. Можно комбинировать относительную и абсолютную
адресацию, например, R1C[-1] – ячейка, расположенная в 1-й строке на 1 столбец левее.
Зафиксированная с помощью символа $ в форме A1 часть адреса ячейки соответствует абсолютному номеру строки или столбца в форме R1C1, а незафиксированная — относительному смещению, поэтому при копировании формулы, преобразованные в форму R1C1, не меняются.
Это особенно удобно, если заполнение таблицы данными и формулами происходит из внешнего приложения.
Напишите программу, которая преобразует адреса ячеек в формуле из формы A1 в форму R1C1.
Формат ввода
Первая строка ввода содержит адрес ячейки, содержащей формулу в форме A1.
Вторая строка ввода содержит формулу. Формула является корректным арифметическим выражением,
которое содержит только обращения к ячейкам в форме A1, числа (целые и вещественные с
разделителем ',' (запятая) между целой и дробной частью), пять знаков
операций ('*', '+', '-', '/' и '^'), круглые скобки и
вызовы математических функций. Имена функций состоят из прописных латинских букв и цифр и
начинаются с буквы, например, MAX, LOG10. Аргументы функции указываются в
круглых скобках и разделяются символом ';' (точка с запятой). Длина имени функции не
превышает 10 символов. Другие символы (пробелы, строчные латинские буквы и т.п.) в формуле отсутствуют.
Длина строки с формулой не превышает 1000 символов. Номер строки находится в диапазоне от 1 до `10^6`,
буквенное обозначение столбца содержит от 1 до 4 букв. Количество цифр в числе не превышает 10.
Формат вывода
В первой строке вывести формулу, в которой все адреса ячеек преобразованы в форму R1C1.
Пример ввода
B2
A1+2,5*B1+MAX($C1;0)
Пример вывода
R[-1]C[-1]+2,5*R[-1]C+MAX(R[-1]C3;0)