Bir kişi Niş birimlerini tamamlamak zorundadır ; işin doğası aynıdır.
İşin asılmasını sağlamak için ilk gün sadece bir birim işi tamamlar .
İşin tamamlanmasını kutlamak istiyor, bu yüzden son gün bir birim işi tamamlamaya karar veriyor .
O sadece tamamlamak için izin verilir x, x+1ya da x-1bir gün içinde çalışma birimleri , xönceki gün tamamlanan işin birimdir.
Göreviniz , iş birimlerini tamamlamak için alacağı minimum gün sayısını hesaplayacak bir program veya işlev oluşturmaktır N.
Örnek Giriş ve Çıkış:
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]
Girdi, STDINişlev argümanı aracılığıyla veya işlev argümanı olarak veya herhangi bir uygun şekilde alınabilir .
Çıktı yazdırılabilir veya bir fonksiyonun sonucu olarak veya herhangi bir uygun şekilde olabilir.
Bu kod golfü . En kısa çözüm kazanır.