eolymp
bolt
Try our new interface for solving problems
Məsələlər

Раскладывание Пасьянса

Раскладывание Пасьянса

\includegraphics{https://static.e-olymp.com/content/05/05a59779996b63c439954988fc1337c93cd4dbbd.jpg} \includegraphics{https://static.e-olymp.com/content/56/56d51528350efc7833e9e9a9facf2e2e28d40e1a.jpg} \includegraphics{https://static.e-olymp.com/content/28/283fb2df106142ed023b860c0faf64537977a348.jpg} \includegraphics{https://static.e-olymp.com/content/3c/3cfba9ca77263cdb04bd327371fc5923b856015f.jpg} "N-T пасьянс" - карточная игра для одного игрока. В игре используется \textbf{4*N} (\textbf{3} ≤ \textbf{N} ≤ \textbf{15}) карт, причем каждой карте соответствует уникальная пара её значения (целое число в диапазоне \textbf{1..N} и масти (, , или ). В начальном положении все карты разложены в \textbf{T} (\textbf{4} ≤ \textbf{MT} ≤ \textbf{12}) стопок; при этом каждая из первых \textbf{(4*N)\%T} стопок содержит по\textbf{(4*N/T)+1} карт, остальные - по \textbf{4*N/T} карт (здесь "\textbf{/}" и "\textbf{\%}" - целочисленное деление и остаток от деления соответственно). Если сумма значений верхних карт двух стопок равно \textbf{N +1}, то эти две карты можно переместить в отбой (независимо от их мастей). Это единственный способ перемещать карты. Напишите программу, которая будет определять, какое максимальное количество карт можно переместить в отбой и как это сделать. \InputFile \includegraphics{https://static.e-olymp.com/content/28/283fb2df106142ed023b860c0faf64537977a348.jpg} \includegraphics{https://static.e-olymp.com/content/3c/3cfba9ca77263cdb04bd327371fc5923b856015f.jpg} \includegraphics{https://static.e-olymp.com/content/05/05a59779996b63c439954988fc1337c93cd4dbbd.jpg} \includegraphics{https://static.e-olymp.com/content/56/56d51528350efc7833e9e9a9facf2e2e28d40e1a.jpg} Первая строка содержит два целых числа \textbf{N} и \textbf{T}, далее идут \textbf{T} строк с описаниями карт соответствующей стопки. Каждая карта описывается её значением (целое число) и мастью (символ с ASCII-кодом \textbf{03}(), \textbf{04}(), 05(), или \textbf{06}()) без пробела между ними. Описания разных карт одной стопки разделены ровно одним пробелом, направление описания слева направо соответствует порядку карт снизу вверх. \textbf{Пример входных данных} \includegraphics{https://static.e-olymp.com/content/0a/0a02930e6fb07541b2168c4f7faebe88381ca2c3.jpg} \OutputFile Ваша программа должна вывести целое число \textbf{S} - максимально возможное количество карт, которые можно переместить в отбой. Затем \textbf{S/2} пар чисел, по паре в строке - номера стопок, с которых надо снимать карты на очередном ходу. \textbf{Примечание}: Если существует несколько способов расладывания (с одинаковым максимальным суммарным количеством снятых карт), выведите любой.
Zaman məhdudiyyəti 2 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
3 5
2 2 2
2 3 1
3 1
1 3
1 3
Çıxış verilənləri #1
10
2 4
2 3
1 2
4 5
3 5
Müəllif Илья Порублёв
Mənbə Летняя школа Севастополь 2013, Волна 1, День 2