Включення-виключення дозволяє обчислити розміри деяких об'єднань та перетинів між множинами, знаючи деякі інші значення. Я не поясню це точно, але ваше завдання полягає у візуалізації включення-виключення на діаграмі Венна.
Тому що мені добре, ви будете використовувати прямокутники, а не кола.
Вам буде наданий список прямокутників, позначених координатами верхнього лівого та нижнього правого кутів у будь-якому розумному форматі (список чотирьох кортежів, список пар, список пар тощо). Ви можете припустити, що всі координати є негативними та знаходяться у (розумному) діапазоні чисел вашої мови (вкажіть, що це таке, якщо воно менше 128). Ви можете вибрати: ліво-включно або ліво-ексклюзивне та право-включне або право-ексклюзивне. Незалежно від обраного формату, ви можете вважати, що всі прямокутники принаймні 1x1.
Тоді ви повинні намалювати кожен прямокутник на екрані (ASCII полотно), використовуючи один символ k
, який не пробігає пробіл , який слід вибрати.
Однак, коли два прямокутника перекриваються, область, що перекривається, буде намальована з іншим символом l != k
, який не пробігає , а також ваш вибір.
Щоразу, коли три прямокутники перекриваються, слід накреслити область, що перекривається k
, і для непарної кількості прямокутників, що охоплюють k
, і парне число l
,.
Фон повинен бути поодинокими пробілами ( 0x20
).
Випробування ( k = "#", l = "."
)
0 0 9 9
1 1 10 10
2 2 11 11
#########
#........#
#.#######.#
#.#######.#
#.#######.#
#.#######.#
#.#######.#
#.#######.#
#.#######.#
#........#
#########
1 1 3 3
2 2 4 4
##
#.#
##
1 1 9 9
2 2 8 8
3 3 7 7
########
#......#
#.####.#
#.####.#
#.####.#
#.####.#
#......#
########
Примітки
0, 0
Потрібно бути присутніми провідні пробіли та нові рядки (які виникають, якщо мінімальна координата відсутня )- Будь-які пробіли та нові рядки дозволені в розумній мірі (тобто не слід переглядати, як 100000000 нових рядків, це просто дратує)
- Осі x- і y- можуть стикатися в будь-якому випадку, але ви повинні бути послідовними та вказувати, які (за замовчуванням - x-право та y- вниз)
- координати можуть бути 0-, 1- або 2- індексованими.
Це код-гольф , тому мета - мати найкоротший код. Щасливого гольфу!