Dipukul di lutut dengan panah tampaknya menjadi pilihan cedera sekarang. Karena itu, saya mengusulkan tantangan golf berikut.
Anda memiliki seorang petualang yang terlihat seperti ini:
O
/|\
/ | \
|
|
/ \
/ \
Diberikan file teks yang berisi satu busur (digambar sebagai }
simbol), satu set dinding (digambar sebagai #
simbol) dan satu petualang, tulis kode terkecil yang menghitung sudut dan kecepatan awal di mana Anda harus menembakkan panah untuk memukul dia di lutut.
Asumsikan yang berikut:
- Setiap karakter dalam file adalah 0,5 x 0,5 meter.
- Panah ditembakkan dari pusat
}
, yaitu offset dari0.25m, 0.25m
- Gravitasi adalah
10ms^-2
- Panah berbobot
0.1kg
- Panah adalah sebuah titik, yaitu tabrakan hanya terjadi ketika koordinat panah memasuki salah satu blok.
- Kecepatan awal maksimum adalah
50m/s
- Sudut mungkin antara 0 (lurus ke atas) dan 180 (lurus ke bawah)
- Memukul bagian mana pun dari kaki petualang dianggap memukul lutut.
- Dinding (
#
karakter) memakan satu blok 0,5 mx 0,5 m. - Panah dapat berjalan di atas "atas" file, tetapi tidak ada yang menghentikan input dari mulai dengan plafon
#
karakter. - Anda tidak dapat menembus dinding dengan panah.
- Memukul bagian petualang lainnya tidak diperbolehkan!
- Anda harus menampilkan kesalahan jika memukul lututnya tidak mungkin.
Input contoh:
#
} O
# /|\
/ | \
# |
# |
/ \
/ \
Jangan ragu untuk bertanya jika perlu :)
#############
...