Олимпиадный тренинг

Задача . B. Расшифруй строку


У Поликарпа есть строка \(s\), состоящая из строчных латинских букв.

Он кодирует её, используя следующий алгоритм.

Он идёт по буквам строки \(s\) слева направо и для каждой буквы Поликарп рассматривает её номер в алфавите:

  • если номер буквы — однозначное число (меньше \(10\)), то он просто выписывает его;
  • если номер буквы — двузначное число (больше или равен \(10\)), то он выписывает его и дополнительно приписывает справа цифру 0.

Например, если строка \(s\) равна code, то Поликарп будет кодировать её следующим образом:

  • 'c' — это \(3\)-я буква алфавита. Следовательно, Поликарп дописывает к коду 3 (код становится равен 3);
  • 'o' — это \(15\)-я буква алфавита. Следовательно, Поликарп дописывает к коду 15 и ещё 0 (код становится равен 3150);
  • 'd' — это \(4\)-я буква алфавита. Следовательно, Поликарп дописывает к коду 4 (код становится равен 31504);
  • 'e' — это \(5\)-я буква алфавита. Следовательно, Поликарп дописывает к коду 5 (код становится равен 315045).

Таким образом, Поликарп код строки code равен 315045.

Вам дана строка \(t\), полученная в результате кодирования строки \(s\). Ваша задача — декодировать её (получить по \(t\) исходную строку \(s\)).

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

Первая строка входных данных содержит целое число \(q\) (\(1 \le q \le 10^4\)) — количество наборов входных данных в тесте.

Далее следуют описания наборов входных данных.

Первая строка описания каждого набора входных данных содержит одно целое число \(n\) (\(1 \le n \le 50\)) — длина заданного кода.

Вторая строка описания каждого набора входных данных содержит строку \(t\) длины \(n\) — заданный код. Гарантируется, что существует такая строка из строчных букв латинского алфавита, в результате кодирования которой получается строка \(t\).

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

Для каждого набора входных данных выведите искомую строку \(s\) — строку, в результате кодирования которой будет получена строка \(t\). Гарантируется, что такая строка всегда существует. Можно показать, что такая строка всегда уникальна.

Примечание

Первый набор входных данных примера разобран в условии.

Во втором наборе примера ответ равен aj. В самом деле, номер буквы a равен \(1\), следовательно к коду будет дописано 1. Номер буквы j равен \(10\), следовательно к коду будет дописано 100. В результате код равен 1100.

Во третьем наборе входных данных нет нулей, а значит номера всех букв меньше \(10\) и кодируются одной цифрой. Исходная строка равна abacaba.

В четвёртом наборе входных данных строка \(s\) равна ll. Буква l имеет номер \(12\) и кодируется как 120. Таким образом, код ll в самом деле равен 120120.


Примеры
Входные данныеВыходные данные
1 9
6
315045
4
1100
7
1213121
6
120120
18
315045615018035190
7
1111110
7
1111100
5
11111
4
2606
code
aj
abacaba
ll
codeforces
aaaak
aaaaj
aaaaa
zf

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя