Tantangan ini didasarkan pada tantangan lain yang serupa. Karena menemukan pengemasan persegi panjang yang paling efisien adalah NP-hard (yaitu, solusinya mudah diperiksa tetapi sulit ditemukan), tantangan ini jauh lebih mudah daripada yang ini di sini
Tantangan ini
Diberikan banyak persegi panjang, cari tahu apakah mereka mengisi ruang persegi panjang tanpa celah atau tumpang tindih.
Memasukkan
Input bisa dalam dua bentuk, salah satunya membawa penalti mencetak gol.
Yang pertama: berisi daftar sub daftar, masing-masing dengan panjang 4. Daftar ini berisi 4 bilangan bulat yang merupakan koordinat dari vertex yang berlawanan. Karena semua persegi panjang akan horisontal / vertikal, tidak ada ambiguitas di mana persegi panjang berada. Setiap sublist akan berisi empat bilangan bulat, yang, secara berurutan, adalah koordinat-x dari simpul pertama, koordinat-y dari simpul pertama, koordinat-x dari simpul kedua, dan koordinat-y dari simpul kedua.
Yang kedua: berisi empat daftar bilangan bulat dengan panjang yang sama. Keempat daftar mewakili koordinat yang berbeda. Jika Anda membayangkan opsi input 1 sebagai matriks, input di sini hanyalah transpose dari matriks. Input ini membawa +20%
penalti byte.
Keluaran
Keluaran kebenaran / kepalsuan sederhana.
Spesifikasi
Jika ada kotak dengan area 0 (yaitu, x1 == x2 || y1 == y2
), abaikan kotak ini (jadi [0 0 1 1], [2 2 3 2]
valid). Spesifikasi ini tersedia untuk mempersulit orang untuk hanya mendapatkan nilai min / maks x / y.
x1 <= x2
dan y1 <= y2
tidak selalu benar. Jika x1 > x2 || y1 > y2
, persegi panjang bukan persegi panjang nol-daerah; melainkan, ia menempati ruang persegi panjang antara (x1, y1)
dan (x2, y2)
.
Koordinat bisa negatif, dalam hal ini mereka masih menempati ruang antara koordinat.
Rectangle paling kiri atas tidak selalu di (0, 0)
; dengan demikian, ruang persegi panjang yang diisi tidak harus memiliki sudut kiri atas (0, 0)
.
(Terima kasih kepada @xnor karena telah menunjukkan ambiguitas ini)
Silakan tentukan bagaimana Anda ingin input Anda dan bagaimana output Anda akan diwakili.
Mencetak gol
Skor adalah ukuran kode dalam byte, ditambah penalti byte jika berlaku. Skor terendah pada 15 Desember menang.
Uji Kasus
0 0 1 2
1 0 3 1 ==> true
1 1 3 2
0 0 2 2
0 0 1 1 ==> false
0 0 0 0
0 0 1 1
2 2 2 2 ==> true
0 1 2 1
Semoga berhasil, senang bermain golf!
x1 <= x2
dan y1 <= y2
? Apakah area 0 berbentuk persegi panjang dengan x1 == x2
dan y1 <= y2
mungkin?
x1 > x2
dan y1 > y2
, apakah ini persegi panjang area-nol karena koordinatnya diaktifkan?