Dalam tantangan ini, Anda diberi dua persegi panjang yang tumpang tindih, dan Anda perlu menghitung persegi panjang yang dibuat dengan menghapus satu dari yang lain.
Misalnya, jika Anda menghapus persegi panjang merah dari yang hitam:
Anda berakhir dengan salah satu dari dua set persegi panjang berikut:
Anda juga harus menangani hal-hal berikut:
Untuk lebih eksplisit:
- Anda akan memasukkan koordinat dua persegi panjang, A dan B.
- Anda perlu menampilkan persegi panjang non-tumpang tindih paling sedikit yang mencakup semua area A tanpa B. Penutup yang memungkinkan diizinkan
- Koordinat persegi panjang dilewatkan sebagai 4 bilangan bulat. Anda dapat mengirimkannya dalam dua pasangan (mewakili dua titik sudut), atau sebagai tuple / daftar 4 bilangan bulat. Input dan output Anda harus konsisten.
- A dan B belum tentu tumpang tindih atau menyentuh, dan masing-masing akan memiliki area minimal 1
Kasus uji:
[(0 0) (5 5)] [(3 4) (8 7)] -> [(0 0) (5 4)] [(0 4) (3 5)] # or [(0 0) (3 5)] [(3 0) (5 4)]
[(2 4) (10 11)] [(5 5) (6 6)] -> [(2 4) (10 5)] [(2 5) (5 6)] [(6 5) (10 6)] [(2 6) (10 11)] #Other sets of 4 rectangles are possible
[(3 3) (8 8)] [(0 1) (10 8)] -> #No rectangles should be output
[(0 0) (5 5)] [(1 1) (10 2)] -> [(0 0) (1 5)] [(1 0) (2 1)] [(2 0) (5 5)] #Other sets of 3 rectangles are possible
[(1 5) (7 8)] [(0 0) (1 10)] -> [(1 5) (7 8)] #Only possible output
[(4 1) (10 9)] [(2 5) (20 7)] -> [(4 1) (10 5)] [(4 7) (10 9)] #Only possible output
[(1 1) (8 8)] [(0 6) (9 9)] -> [(1 1) (8 6)] #Only possible output
Ini adalah kode-golf , jadi buat kode Anda sesingkat mungkin!
{(x1, y1), (x2, y2)}
berlaku x1 < x2
dan y1 < y2
?