Masalah ini (lihat di bawah) telah diberikan sebagai tantangan golf kode Liga Pemrograman SMA. Kode terpendek yang dikirimkan selama kontes adalah: 177 byte di Ruby, 212 byte di Python 2.5, 265 byte di C. Adakah yang bisa membuatnya lebih pendek? Bahasa pemrograman lain juga diperbolehkan.
Rumusan masalah : Diberikan 8 bilangan bulat: -1000 <x1, y1, x2, y2, x3, y3, x4, y4 <1000. Periksa bagaimana bentuk persimpangan dua persegi panjang yang disejajarkan dengan sumbu: P1 = (x1, y1) , (x1, y2), (x2, y2), (x2, y1) dan P2 = (x3, y3), (x3, y4), (x4, y4), (x4, y3).
* If the rectangles do not intersect print *nothing*.
* If there is exactly one point in common print *point*.
* If the intersections of P1 and P2 is a line segment print *line*.
* If they have a rectangular area in common print *rectangle*.
Spesifikasi data input : Baris pertama berisi jumlah test case t (1 <= t <1000). Setiap baris t berikut berisi 8 bilangan bulat: x1, y1, x2, y2, x3, y3, x4, y4 (Luas kedua persegi panjang lebih besar dari 0).
Anda dapat menguji solusi Anda di sini .
Jawaban:
Python, 200 karakter
f
pengembalian:sumber
OCaml, 265 karakter
Menggunakan (menyalahgunakan) fakta bahwa membandingkan menghasilkan 0, 1 atau -1. Ini tidak dijamin menurut dokumentasinya tetapi benar dengan OCaml 3.10.1.
sumber