Piramida Anda
Piramida yang saya ingin Anda bangun seluruhnya terbuat dari kubus. Ini memiliki 24 lapisan, dan lapisan ke- N dari atas berisi N 2 kubus disusun dalam bujur sangkar oleh N. Piramida terlihat seperti ini:
Untuk membangun piramida, Anda akan membutuhkan pasokan kubus. Anda diberi 4.900 kubus disusun dalam 70 oleh 70 persegi yang terlihat seperti ini:
(Oke, saya akui bahwa gambar alun-alun sama sekali tidak perlu.)
Karena 1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2 , Anda memiliki jumlah kubus yang tepat untuk membangun piramida. Yang harus Anda lakukan adalah memberi tahu saya di mana setiap kubus harus pergi.
Tugas Anda
Anda harus memilih bijih acak antara kubus di alun-alun dan kubus di piramida. (Akan lebih baik jika jawaban Anda mengatakan yang mana dari 4900! Biopsi berbeda yang Anda gunakan.)
Kemudian, tulis fungsi atau program yang melakukan hal berikut:
- Mengingat lokasi kubus di 70 dengan 70 persegi (sebagai pasangan koordinat
(X,Y)
), - Keluarkan lokasinya di piramida (sebagai tiga koordinat
(A,B,C)
).
Koordinat input dan output semuanya bisa 0-diindeks atau 1-diindeks. Dengan asumsi 1-diindeks, input Anda (X,Y)
akan menjadi sepasang bilangan bulat antara 1 dan 70. Output Anda (A,B,C)
akan menjadi tiga kali lipat dari bilangan bulat; A
harus menjadi penghitungan lapisan dari atas (antara 1 dan 24) dan (B,C)
harus menjadi koordinat kubus itu di dalam lapisan itu (antara 1 dan A
).
Sebagai contoh:
- kubus atas dari piramida memiliki koordinat
(1,1,1)
. - Empat sudut dasar piramida memiliki koordinat
(24,1,1)
,(24,1,24)
,(24,24,1)
, dan(24,24,24)
. - Jika Anda memutuskan untuk menempatkan sudut-sudut alun-alun di sudut-sudut piramida, maka pada input
(70,1)
Anda dapat memberikan output(24,24,1)
.
Anda mungkin menganggap Anda hanya akan diberikan koordinat yang valid (X,Y)
sebagai input. Kebenaran sepenuhnya ditentukan oleh aturan berikut: dua input valid berbeda harus selalu memberikan dua onput yang valid berbeda.
Ini adalah kode-golf : kode terpendek menang.