Виграє найкоротший код для передачі всіх можливостей
Було створено багато ігор на основі сітки, які починаються із сітки вогнів, що вмикаються. Натискання будь-якого з вогнів призводить до вимкнення цього світла та чотирьох сусідніх до нього. Коли світло вимкнено, воно вимикається або вмикається, залежно від того, чи було воно ввімкнено чи вимкнено. Мета полягає в тому, щоб потрапити на вогні в такій послідовності, що призведе до вимкнення всіх вогнів у кінці.
"X" позначає увімкнені вогні. "O" позначає вимкнені світильники. "P" являє собою той квадрат, який натиснуто.
XOO XOO XOX XOX XXX
XOX XOP -> XXO -> OPO -> XOX
OOX OOX POO XXO XOO
Intial Grid Press 1 Press 2 Press 3 Ending Grid
Введення можна взяти безпосередньо з файлу, переданого як аргумент, або як стандартне введення. Перший рядок введення міститиме x (1 <= x <= 20), розмір сітки вогнів, що означає x на x . Другий рядок буде містити y (0 <= y <= ( x * 3) 2 ), кількість первинних ламп. Наступні y рядки містять координати освітлених вогнів на сітці у форматі "рядок колони". Фари, які вже увімкнули (були включені раніше), слід знову вимкнути. Наступний рядок буде містити z , кількість натиснутих вогнів. Заключний z рядки містять координати натиснутих вогнів у тому порядку, в якому вони були натиснуті, у форматі "рядок колони".
Жодне введення не буде помилковим. Усі числа будуть в заданих межах сітки.
Вихід буде остаточною сіткою після включення всіх вогнів. Це повинно бути п по п сітці. Для кожної області, на якій увімкнено світло, слід використовувати верхній символ "X". Для кожної області, де світло вимкнено, слід використовувати верхній регістр символу "O".
Фари, які впливають на вимкнення мережі, слід ігнорувати. Увімкнення світла на краю сітки повинно впливати лише на світло, яке знаходиться на самій сітці.
Випробування
Вхідні дані
4
5
2 3
2 4
3 1
3 4
4 3
7
3 3
4 4
3 4
4 2
4 1
2 2
3 2
Вихідні дані
OXOO
XOXO
XOXO
OXOO
Вхідні дані
1
3
1 1
1 1
1 1
2
1 1
1 1
Вихідні дані
X