Menemukan harta karun yang disembunyikan oleh bajak laut sangat mudah. Semua yang Anda butuhkan untuk ini adalah peta. Diketahui secara luas bahwa bajak laut menggambar peta dengan tangan dan menggambarkan algoritme untuk menemukan tempat dengan cara berikut: "Berdirilah di dekat pohon palem yang sendirian, lakukan 30 langkah menuju hutan, 15 menuju danau, ..."
Perjalanan melalui rute seperti itu biasanya merupakan peluang besar untuk melihat pemandangan ... Namun, saat ini tidak ada yang punya waktu untuk itu. Itu sebabnya pencari harta telah meminta Anda untuk menulis sebuah program yang akan menentukan lokasi yang tepat dari harta menggunakan peta yang diberikan.
Memasukkan
Input terdiri dari beberapa instruksi <Direction> <Distance>
, dipisahkan dengan koma (yang diikuti oleh masing-masing spasi putih).
Arahnya adalah salah satu dari yang berikut:
N
- Utara, S
- Selatan, E
- Timur, W
- Barat,
NE
- Timur Laut, NW
- Barat Laut, SE
- Tenggara, SW
- Barat Daya.
Jarak adalah bilangan bulat (1 hingga 1000).
Keluaran
Hasilnya adalah koordinat tempat Anda berakhir setelah menyelesaikan instruksi, dengan tiga tempat desimal, dipisahkan dengan koma dan spasi putih. Lokasi awal memiliki nol koordinat (0, 0).
Koordinat pertama adalah X (Timur berarti koordinat lebih besar dari nol, Barat berarti kurang dari nol).
Koordinat kedua adalah Y (Utara berarti lebih dari nol, Selatan berarti kurang dari nol).
Contohnya
1. N 3, E 1, N 1, E 3, S 2, W 1
3.000, 2.000
2. NW 10
-7.071, 7.071
3. NE 42, NW 42, SE 42, SW 42
0.000, 0.000
Sumber (dalam bahasa Ukraina). Format input berbeda di sana.
-3.000, 2.000
.(print (word (form xcor 4 3) ",) (form ycor 4 3))
. Tapi saya tidak yakin betapa mudahnya menguraikan input.Jawaban:
Ruby 1.9,
175171162153130120117sumber
?i.to_c
dapat disingkat menjadi1.i
-4 byte.Haskell (291)
sumber
C99 (319 karakter)
masukan
stdin
, uji coba di ideone :)sumber
Python,
158154150 karaktersumber
D=dict(N=1j,E=1,S=-1j,W=-1)
[153] Baris 2:j
benar-benar diperlukan? [152] Baris 3-4: Jika Anda beralih ke Python 3,raw_input
→input
, dan meskipun Anda harus menggunakan tanda kurung setelahnyaprint
, Anda menyimpan 2 karakter [150].real
dan.imag
bekerja.imag
danreal
attrs ...JavaScript,
179164170168158156153 karakter(E|W)
dalam regex dengan(.)
d
n
alih-alih variabel barud
153: Secara pribadi, saya pikir suntingan ini membuatnya sepuluh kali lebih buruk, tetapi tiga karakter lebih pendek. Ini didasarkan pada perilaku non-standar yang Anda dapat memanggil objek RegExp sebagai fungsi:
/./g('string')
sama dengan/./g.exec('string')
:for(p=prompt(X=Y=0),R=/(N|S)?(.)? (\d+)/g;[,y,x,n]=R(p)||0;X+=x?x<'W'?n:-n:0)n/=x&&y?Math.SQRT2:1,Y+=y?y<'S'?n:-n:0;alert(X.toFixed(3)+', '+Y.toFixed(3))
sumber
Haskell, 199 karakter
sumber
Scala (
367, 332)sumber
Jawa
(459) (445) (402) (382) (363)(352)input stdin
sumber
PowerShell, 178
Ini mungkin dapat kehilangan hingga 10 karakter dengan mengurangi keakuratan √2 / 2.
sumber
C (gcc) ,
155152 byte-3 bytes berkat ceilingcat
Cobalah online!
sumber
Groovy (215)
membaca input sebagai argumen program. Contoh:
sumber
Perl 5
-n
, 122 byteCobalah online!
sumber
J , 93 byte
Cobalah online!
sumber