pengantar
Setelah pertempuran panjang, Anda telah berhasil mengalahkan Sphinx dalam kontes teka-teki. Sphinx, terkesan dengan keahlian Anda, ingin memberi Anda hadiah yang sepadan dengan kepintaran Anda, dan memunculkan selembar perkamen ajaib yang terbagi menjadi delapan kotak, masing-masing berisi angka.
"Perkuat perkamen," kata Sphinx, "sehingga kotak-kotak itu tumpang tindih, dan kotak-kotak itu akan bergabung baik melalui penambahan atau perkalian. Ketika satu kotak tersisa, nilainya akan menjadi hadiahmu dalam koin emas."
Tugas
Anda harus menulis sebuah program atau fungsi yang mengambil input daftar / array / apa pun dari delapan bilangan alami, dan mengembalikan / mencetak hadiah maksimum yang mungkin diperoleh melalui serangkaian operasi 'lipatan'.
Mekanika
Operasi 'lipatan' dilakukan pada sejumlah sel, dan dengan salah satu +
atau *
sebagai operator. Sel n pertama dari daftar dilipat dan digabung dengan sel tujuan menggunakan operator. Setiap sel yang tidak dikonsumsi dalam operasi gabungan dibiarkan tidak dimodifikasi.
Berikut adalah contoh pengerutan menggunakan n = 3 sel:
menggunakan salah satu tambahan, yang akan menghasilkan ini:
atau multiplikasi, yang akan menghasilkan ini:
Catatan: Untuk kesederhanaan, pengerutan dengan kurang dari 1 sel tidak diizinkan, seperti halnya pengerutan dengan jumlah sel lebih besar dari atau sama dengan panjang daftar. Namun, suatu daftar dapat dengan bertambah lebih dari setengah jumlah selnya.
Daftar 8 sel dapat dikerutkan dengan 5, menghasilkan daftar panjang baru 5:
[0,1,2,3,4,5,6,7]
dikerutkan oleh 5 sel menggunakan +
operator akan memberikan [9,9,9,1,0]
.
Mencetak gol
Aturan golf kode standar - kode yang menghasilkan output yang benar dan memiliki jumlah byte paling sedikit yang menang.
Bonus: Jika kode Anda juga mengembalikan / mencetak urutan operasi lipatan yang mengarah ke hadiah maksimal, kalikan skor Anda dengan 0,8. Contoh output mungkin terlihat seperti:
crease 5 +
crease 2 *
crease 2 +
crease 1 *
Contohnya
Uji kode Anda menggunakan input dan hasil ini, dalam bentuk input - maximum reward
:
[0, 1, 2, 3, 4, 5, 6, 7] - 7560
[0, 9, 0, 3, 2, 6, 1, 5] - 1944
[0, 1, 0, 3, 0, 2, 0, 4] - 36
[6, 0, 9, 1, 9, 0, 7, 3] - 11907
[0, 5, 2, 0, 1, 3, 8, 8] - 2560