printРабочее место участника

printЗадачи

1841. A1.R1C1

Ограничения: время – 200ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение 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)
loading