包含-除外を使用すると、他の値のいくつかを知っているセット間のいくつかの結合および交差のサイズを計算できます。私はそれを正確に説明しませんが、あなたの課題は、ベン図で包含/除外を視覚化することです。
私はいいから、円ではなく長方形を使うことになります。
任意の妥当な形式(4タプルのリスト、ペアのペアのリスト、ペアのリストなど)で、左上隅と右下隅の座標で示される長方形のリストが表示されます。すべての座標が負ではなく、言語の(合理的な)数値範囲内であると想定できます(128未満の場合はそれを指定してください)。左を含むか左を排他的にするか、右を含むか右を含むかを選択できます。選択した形式に関係なく、すべての長方形が少なくとも1x1であると想定できます。
次に、k選択する空白文字以外の単一の文字を使用して、画面上の各長方形(ASCIIキャンバス)を描画します。
ただし、2つの長方形が重複する場合は常に、重複する領域が別の非空白文字l != kで描画され、選択する必要があります。
3つの長方形が重なるときはいつでも、重なり合う領域はで描画され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のインデックスを付けることができます。
これはcode-golfなので、目的は最短のコードにすることです。ハッピーゴルフ!