pengantar
Arena ini adalah dataran datar yang dipenuhi gedung pencakar langit, yang digunakan musuh untuk berlindung. Anda dan musuh Anda saling menembak dengan laser. Anda semua membawa paket jet, memungkinkan penerbangan.
Musuh mana yang bisa Anda pukul dengan laser, dan yang bersembunyi?
Masalah
Pertama, ukuran arena diberikan oleh integer npada satu baris. Baris berikut nberisi nbilangan bulat per baris yang dipisahkan oleh spasi. Setiap bilangan bulat mewakili ketinggian bangunan di lokasi itu. Setiap bangunan adalah benda padat persegi panjang, 1 unit kali 1 unit dengan unit tinggi.
Berikutnya, lokasi Anda diberikan pada satu baris tiga angka floating point x, y, z.
Akhirnya, jumlah musuh diberikan oleh integer mpada satu baris. Baris berikut mberisi tiga angka floating point per baris yang dipisahkan oleh spasi. Ini mewakili x, ydan zkoordinat musuh. Sistem koordinat didefinisikan sebagai berikut:
xdiukur dari kiri ke kanan di input kotaydiukur dari atas ke bawahzdiukur dari bawah ke atas
Untuk setiap musuh, jika garis yang tidak terhalang dapat ditarik dari Anda ke musuh itu, berikan bilangan bulat positif . Jika tidak, hasilkan bilangan bulat negatif . Pisahkan output dengan baris baru.
Input Sampel
Komentar, dilambangkan dengan '#', hadir untuk membantu Anda dengan cepat melihat apa yang dilakukan setiap baris. Mereka tidak akan hadir dalam input aktual.
5 # Size of the map
0 0 0 0 0 # Buildings
0 0 0 0 0 # Buildings
4 4 4 4 4 # Buildings
0 0 0 0 0 # Buildings
0 0 0 0 0 # Buildings
2.5 0.0 4.0 # Your location
3 # Number of enemies
2.5 5.0 0.1 # Enemy location
2.5 5.0 5.0 # Enemy location
0.0 2.7 4.5 # Enemy location
Output sampel
Untuk input sampel di atas, kami menampilkan yang berikut:
-1
1
1
Asumsi
- 0
n<<100 - 0
m<<100 - 0 <=
x<=n - 0 <=
y<=n - 0 <=
z<n - Pemain tidak akan berlokasi di atau di dalam sudut, tepi, atau sisi bangunan
- Garis pandang Anda kepada musuh tidak akan pernah bersinggungan dengan sudut, tepi, atau sisi bangunan
- Seorang pemain bukan halangan