Diberikan sebuah array berisi [3, 9, 1, 7, 2, 5], satu langkah didefinisikan sebagai pemilihan dua buah angka, menghapus salah satunya, dan menambah nilai absolut dari selisih kedua angka tersebut pada angka yang tidak dihapus. Sebagai contoh anda mengambil dua buah angka A dan B, kemudian menghapus angka A, dan menambahkan selisih absolut (A-B) ke angka B. Anda dapat menjalankan langkah tersebut sampai terdapat hanya tersisa 1 angka. Berapakah nilai terbesar yang bisa anda dapatkan?
Jawaban: ……………. {tuliskan jawaban dalam bentuk angka saja}
Jika ingin mendownvote, jangan lupa juga untuk komen tentang kesalahannya. That'll be helpful for everyone, don't let that be a habit.
Pada soal ini, upaya yang paling rakus mungkin yang lebih baik. Kita misalkan array tersebut adalah , dan penghapusan elemen ke-
pada array tersebut kita notasikan sebagai
. Perhatikan bahwa operasi yang kita lakukan adalah memilih suatu bilangan
dan
, lalu kita set
dan melakukan
. Algoritma (pseudocode) yang rakus ditunjukkan oleh figur berikut.

Algoritma ini pertamanya menginisialisasikan variabel dan
yang masing-masing sebagai indeks dari elemen terbesar dan terkecil di array
. Baris ke-3 berperan sebagai basis dari fungsi
. Lalu dari baris ke-5 sampai ke-9 menentukan apa itu
dan
sesuai dari array
. Baris ke-10 dan ke-11 merupakan hal yang paling fundamental bagi algoritma yang rakus ini, yaitu kita memilih elemen terbesar dan terkecil, menambahkan selisih tersebut ke elemen yang terbesar, dan lakukan rekursi dengan menghapus elemen dengan indeks
, yaitu elemen terkecil pada array
.
Kita run . Output yang dihasilkan adalah 227.
Note: Anda dapat membuktikan bahwa selalu mengeluarkan output yang benar, namun terlalu rigor untuk tipe kompetisi yang dimana soalnya hanyalah isian singkat, dalam kali ini anda hanya dapat mengandaikan intuisi saja.
Ralat: Pada baris 4, seharusnya return A[1].
Bonus:
Masuk untuk menulis jawaban
pilih dulu bil terbesar dan terkecil,, lakukan terus dg bil terkecil yg tersisa,, didapa hasil maksimal 227
kita dapat lihat bahwa untuk mencari hasil terbesar maka kita membutuhkan selisih terbesar oleh karena itu cara yang dapat dilakukan adalah melakukan langkah dengan pemilihan angka yg terbesar dan yang terkecil, seperti berikut.
(3, 9, 1, 7, 2, 5) 9+(9-1)=17
(3, 17, 7, 2, 5) 17+(17-2)=32
(3, 32, 7, 5) 32+(32-3)=61
(61, 7, 5) 61+(61-5)=117
(117, 7) 117+(117-7)=227