Введення: Масив I з k додатних цілих чисел. Цілі числа будуть не більше 100 і k ≤ 100 .
Вихід: Ваш код повинен виводити всі можливі масиви O негативних цілих чисел довжини k з обмеженням 0 ≤ O i ≤ I i . Щоб дістатися з одного масиву до іншого, ви можете додати або відняти 1 до одного значення в масиві. Ваш код не повинен виводити один і той же масив двічі. Якщо кількість різних масивів для виведення дуже велика, ваш код повинен просто продовжувати виводити назавжди, поки він не буде вбитий.
Приклади
Якщо я - масив k , то це саме проблема ітерації над усіма кодами сірого кольору бітової ширини k , за винятком того, що перший і останній елемент не потребують досягнення в один крок.
Якщо
I = [2,1]
тоді можливе впорядкування вихідних масивів(0,0),(0,1),(1,1),(1,0),(2,0),(2,1)
- Якщо
I = [2,1,3]
тоді можливе впорядкування вихідних масивів(0,0,0),(0,0,1),(0,0,2),(0,0,3),(0,1,3),(0,1,2),(0,1,1),(0,1,0),(1,1,0),(1,1,1),(1,1,2),(1,1,3),(2,1,3),(2,1,2),(2,1,1),(2,1,0),...
.
Це виклик з гольф-кодом, виграш подання з вихідним кодом з найкоротшою довжиною. Не дозволяйте коротким відповідям на гольф-мовах відштовхувати вас від публікації відповіді іншими мовами. Спробуйте придумати найкоротшу відповідь будь-якою мовою.
Це також завдання з обмеженою складністю. Кожен новий масив повинен виводитися з часом O (k) з моменту попереднього виведеного масиву (або початку програми для першого виведеного масиву). Це означає, що час роботи на новий вихідний масив (кожен з них має довжину k ) не повинен перевищувати O (k) . Тобто воно повинно зайняти пропорцію часу k, а не, наприклад, k 2 або 2 k . Зауважте, що це не середній час на вихід, але найгірший час для кожного виведеного масиву.
Можна припустити, що всю арифметику на 64 бітових цілих числах можна виконувати в постійний час, як і читання та виведення їх, а також призначення та перегляд та зміну значень у масивах.
Одним із наслідків обмеженої складності є те, що рішення, які виводяться лише при виході з програми, є неприйнятними.
n
і k
обмежені? припускаючи, що вони йдуть до нескінченності з шириною бітів, як рухатись
I_i+1
? Ви можете досягти 0 зI_i
?)