C/C++

Помогите решить задачу

Это задача с двойным запуском Шахматы Фишера вариант шахмат, предложенный Робертом Фишером, 11-м чемпионом мира по шахматам. Правила игры в основном такие же, как в классических шахматах, но начальная расстановка фигур определяется случайным образом со следующими ограничениями: восьмом • Белые и чёрные фигуры располагаются соответственно на первом и рядах, расстановка фигур белых идентична расстановке фигур чёрных (то есть соответствующие фигуры стоят на одинаковых вертикалях). Белые и чёрные пешки располагаются соответственно на втором и седьмом рядах. • У каждой из сторон слоны стоят на полях разного цвета (то есть один на белом, один на чёрном). Ладьи каждой из сторон располагаются по разные стороны от короля. Это необходимо для того, чтобы обеспечить возможность рокировки. Поля на рядах с третьего по шестой включительно пустые. В данной задаче будут использованы стандартные обозначения: Белые фигуры обозначаются заглавными буквами. Среди них один король (К), один ферзь- (Q), два коня (N), две ладьи (R) и два слона (В). Располагаются на самом нижнем (первом) ряду. Восемь белых пешек (Р) располагаются на втором снизу (втором) ряду. Чёрные фигуры обозначаются строчными буквами. Среди них — один король (k), один ферзь (q), два коня (n), две ладьи (г) и два слона (b). Располагаются на самом верхнем (восьмом) ряду. Восемь чёрных пешек (р) располагаются на втором сверху (седьмом) ряду. Пустые поля обозначаются точками .. Позиция задаётся 8 строками, каждая из которых имеет длину 8. Поле h1 соответствует первому символу в первой строке, поле a1 соответствует первому символу в последней строке. Пример корректной начальной позиции шахмат Фишера, заданной в описанном выше «формате: bnrbnkrq BNRBNKRQ Другое название шахмат Фишера - шахматы-960, по числу начальных позиций. Ваша задача по заданному числу от 1 до 960 сгенерировать позицию из шахмат Фишера так, что разным числам соответствуют разные позиции, а затем по позиции в соответствии с вашей нумерацией восстановить номер. Ваше решение будет запущено на каждом тесте независимо два раза один раз для кодирования, второй раз для декодирования. Формат входных данных В первой строке входных данных содержится слово «encode», если от вашей программы требуется по числу вывести позицию, и «decode», если требуется по позиции вывести её номер. Вторая строка содержит одно целое число Т — количество тестовых примеров (1 ≤ T ≤ 32). Далее следуют тестовые примеры. Если первая строка входных данных содержит слово «encode», то каждый тестовый пример занимает одну строку и состоит из целого числа xi (1 ≤ xi ≤ 30). Если первая строка входных данных содержит слово «decode», то каждый тестовый пример занимает 8 строк и представляет собой корректную начальную позицию в шахматах Фишера, заданную в формате, описанном в условиях задачи. Формат выходных данных В случае encode (при первом запуске) для каждого числа выведите корректную начальную позицию в шахматах Фишера, соответствующую заданному числу в вашей нумерации. Если позиция не будет корректной, то решение будет признано неверным. В случае decode (при втором запуске) для каждой позиции выведите номер этой позиции в вашей нумерации. Если номер не будет совпадать с соответствующим номером из первого запуска, решение будет признано неверным. Примеры стандартный ввод стандартный вывод encode rnbqkbnr 1 1 RNBQKBNR decode 1 1 rnbqkbnr RNBQKBNR
Ответы
ты eбнутый?