## Problem A. Advanced ASCII Cubes ≡

 Author: A. Klenin Time limit: 3 sec Input file: input.txt Memory limit: 200 Mb Output file: output.txt

### Statement

The table surface is divided into N by M square cells. Some cubes are stacked one upon another over the cells, forming towers. For each cell the number of cubes stacked over it is given in the matrix A.

Your program must output the view of the table in ASCII graphics, where each cube is represented as shown below:

  +---+ / /| +---+ | | | + | |/ +---+  (here the characters used are '+', '-', '/', '|', their ASCII codes are ASCII 43, 45, 47, 124)

The dot (ASCII 46) must be used as a background.

### Input file format

Input file contains integers N M, followed by matrix A, row-by-row. The first row describes the cube tower furthest from the viewer, left to right, and the last row — nearest to the viewer.

### Output file format

Output file must contain a string representation of the table view, with minimal number of lines required to show all cubes. Each line must contain a string of equal length, which is the minimal width required to show all cubes.

### Constraints

1 ≤ N, M, Aij ≤ 50

### Sample tests

No. Input file (input.txt) Output file (output.txt)
1
3 4
1 1 1 1
1 2 1 1
1 1 1 1
........+---+..........
......+/   /|-+---+---+
...../+---+ |/   /   /|
....+-|   | +---+---+ |
.../  |   |/   /   /| +
..+---+---+---+---+ |/.
./   /   /   /   /| +..
+---+---+---+---+ |/...
|   |   |   |   | +....
|   |   |   |   |/.....
+---+---+---+---+......
2
3 5
2 2 1 2 2
2 2 1 1 2
3 2 1 2 2

......+---+---+...+---+---+
..+---+  /   /|../   /   /|
./   /|-+---+ |.+---+---+ |
+---+ |/   /| +-|  /   /| +
|   | +---+ |/+---+---+ |/|
|   |/   /| +/   /   /| + |
+---+---+ |/+---+---+ |/| +
|   |   | +-|   |   | + |/.
|   |   |/  |   |   |/| +..
+---+---+---+---+---+ |/...
|   |   |   |   |   | +....
|   |   |   |   |   |/.....
+---+---+---+---+---+......

## Problem B. Simple prefix compression ≡

 Author: A. Klenin Time limit: 2 sec Input file: input.txt Memory limit: 200 Mb Output file: output.txt

### Statement

Many databases store the data in the character fields (and especially indices) using prefix compression. This technique compresses a sequence of strings A1, ..., AN by the following method: if there are strings Ai = ai,1ai,2...ai,p and Ai + 1 = ai+1,1ai+1,2...ai+1,q

such that for some j ≤ min(p, q) ai,1 = ai+1,1, ai,2 = ai+1,2, ... ai,j = ai+1,j, then the second string is stored as [j]ai+1,j+1ai+1,j+2... ai+1,q, where [j] is a single character with code j.

If j = 0, that is, strings do not have any common prefix, then the second string is prefixed with zero byte, and so the total length actually increases.

### Input file format

First line of input file contains integer number N, with following N lines containing strings A1 ... AN

### Output file format

Output file must contain a single integer — minimal total length of compressed strings.

### Constraints

1 ≤ N ≤ 10000, 1 ≤ length(Ai) ≤ 255.

### Sample tests

No. Input file (input.txt) Output file (output.txt)
1
3
abc
atest
atext

11
2
2
test
notest

11

## Problem D. Nearest number - 2 ≡

 Author: A. Klenin Time limit: 5 sec Input file: input.txt Memory limit: 200 Mb Output file: output.txt

### Statement

Input is the matrix A of N by N non-negative integers.

A distance between two elements Ai j and Ap q is defined as |ip| + |jq|.

Your program must replace each zero element in the matrix with the nearest non-zero one. If there are two or more nearest non-zeroes, the zero must be left in place.

### Input file format

Input file contains the number N followed by N2 integers, representing the matrix row-by-row.

### Output file format

Output file must contain N2 integers, representing the modified matrix row-by-row.

### Constraints

1 ≤ N ≤ 200, 0 ≤ Ai ≤ 1000000

### Sample tests

No. Input file (input.txt) Output file (output.txt)
1
3
0 0 0
1 0 2
0 3 0
1 0 2
1 0 2
0 3 0

## Задача E. OLE ≡

• задачи
 Автор: А. Кленин Ограничение времени: 4 сек Входной файл: input.txt Ограничение памяти: 200 Мб Выходной файл: output.txt

### Условие

Текстовый редактор OLE (One-Line Editor) работает с текстом, состоящим ровно из одной строки строчных латинских букв. Редактор поддерживает следующие команды, длиной в один символ каждая:

• az — вставить справа от текущей позиции курсора указанный символ, переместить курсор на один символ вправо
• L — переместить курсор на 1 символ влево
• R — переместить курсор на 1 символ вправо
• X — удалить символ справа от позиции курсора
Команды, пытающиеся переместить курсор за пределы строки или удалить символ справа от последнего символа строки, игнорируются редактором.

Требуется по данному начальному состоянию строки, начальной позиции курсора и последовательности команд определить результат работы редактора.

### Формат входного файла

Входной файл состоит из 3 строк. В первой строке содержится позиция курсора p, (0 — курсор перед первым символом, 1 — после первого перед вторым, и т.д.) во второй строке — начальное состояние строки редактора, в третьей — последовательность команд.

### Формат выходного файла

Выходной файл должен содержать строку, полученную в результате выполнения команд.

### Ограничения

Длина исходной строки находится в диапазоне от 1 до 1000000 символов. Длина строки команд находится в диапазоне от 1 до 100000 символов.

0 ≤ p ≤ длина исходной строки.

### Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
1
abc
deLXX
adc
2
0
aa
bbLLx

xbbaa

0.181s 0.006s 19