G. Процедура writef
Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
Фирма Macrohard разработала новый язык программирования: P--. В этом языке имеется K типов целых чисел – int, longint, longlongint, …, longlong…longint (K-1 раз long). Числа этих типов могут принимать значения в диапазонах 0..M0, соответственно.
Также, в этом языке имеется процедура вывода writef, которая имеет неограниченное количество параметров. В качестве первого параметра она получает строку, а в качестве второго и последующих может получать числа любого из поддерживаемых типов. При этом вывод осуществляется следующим способом: выводится строка, переданная первым параметром, в которой произведена подстановка параметров, а именно, вместо %i подставляется число типа int, вместо %li – число типа longint, вместо %ll…li (j букв l) – число типа longlong…longint (j раз long). Вывод числа осуществляется в системе счисления с основанием B\ (2\ ≤\ B\ ≤\ 36).
Цифрами в системе счисления с основанием B являются обычные десятичные цифры и, если их недостаточно, заглавные буквы латинского алфавита в алфавитном порядке. Например, 10010=4С22, 126010=Z036.
При этом тип передаваемых параметров должен совпадать с соответствующими шаблонами. Например, если M_0=300,\ M_1=3000,\ M_2=1000000,\ B=10, то writef("hello %i%li", 300, 500) выведет "hello 300500".
Дана строка, которую вывела некоторая процедура writef. Выясните, какая самая короткая строка могла быть передана передана этой процедуре в качестве первого параметра. Например, для приведенного выше примера, это могла быть строка "hello %lli".
На первой строке ввода находятся числа K и B\ (1\ ≤\ K\ ≤\ 50,\ 2\ ≤\ B\ ≤\ 36). Следующая строка содержит числа M_0,\ M_1,\ …,\ M_{K-1}\ (0\ ≤\ M_0\ ≤\ M_1\ ≤\ …\ ≤\ M_{K-1}\ ≤\ 10^9, числа заданы в десятичной системе счисления). На следующей строке находится текст, выведенный некоторой процедурой writef. Длина текста не превышает 200 символов. Текст не содержит символов "%".
Выведите самую короткую строку, которая могла быть передана процедуре writef в качестве первого параметра. На второй строке перечислите все остальные параметры, которые были ей переданы, числа выводите в десятичной системе счисления и разделяйте ровно одним пробелом. Если решений несколько, достаточно выдать любое.
Пример ввода 1
3 10
300 3000 1000000
hello 300500
Пример вывода 1
hello %lli
300500
Пример ввода 2
1 4
1
hello 111
Пример вывода 2
hello 111
Пример ввода 3
1 2
10
hello 111
Пример вывода 3
hello %i
7
Пример ввода 4
1 36
1000000000
HELLO 111 3
Пример вывода 4
%i %i 3
29234652 1333
Источник: IX командный чемпионат школьников Санкт-Петербурга по программированию