Seseorang harus menyelesaikan Nunit kerja; sifat pekerjaannya sama.
Untuk menguasai pekerjaan, ia menyelesaikan hanya satu unit pekerjaan di hari pertama .
Dia ingin merayakan penyelesaian pekerjaan, jadi dia memutuskan untuk menyelesaikan satu unit pekerjaan di hari terakhir .
Ia hanya diizinkan menyelesaikan x, x+1atau x-1unit kerja dalam satu hari , di mana xunit kerja selesai pada hari sebelumnya.
Tugas Anda adalah membuat program atau fungsi yang akan menghitung jumlah hari minimum yang akan ia ambil untuk menyelesaikan Nunit kerja.
Input Sampel dan Ouput:
input -> output (corresponding work_per_day table)
-1 -> 0 []
0 -> 0 []
2 -> 2 [1,1]
3 -> 3 [1,1,1]
5 -> 4 [1,1,2,1] or [1,2,1,1]
9 -> 5 [1,2,3,2,1]
13 -> 7 [1,2,2,2,3,2,1]
Masukan dapat diambil melalui STDINatau sebagai argumen fungsi, atau dengan cara apa pun yang sesuai.
Keluaran dapat dicetak atau sebagai hasil dari suatu fungsi, atau dengan cara apa pun yang sesuai.
Ini adalah kode-golf . Solusi terpendek menang.