Людина повинна виконати Nодиниці роботи; характер роботи однаковий.
Для того, щоб завісити роботу, він в перший день завершує лише одну одиницю роботи .
Він хоче відсвяткувати завершення роботи, тому вирішує виконати одну одиницю роботи за останній день .
Він дозволений тільки для завершення x, x+1або x-1одиниці роботи в день , де xє одиниці роботи , виконаної в попередній день.
Ваше завдання - створити програму або функцію, яка обчислить мінімальну кількість днів, які йому знадобиться, щоб виконати Nодиниці роботи.
Зразок введення та вихід:
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]
Введення даних може бути прийнято через STDINаргумент функції або будь-яким відповідним чином.
Вихід може бути надрукований або як результат функції, або будь-яким відповідним чином.
Це код-гольф . Найкоротше рішення виграє.