Завдання
Театр має 10 рядків, позначених , A
щоб J
від передньої частини до задньої, а також 15 місць в кожному ряду, пронумерованих від 1 до 15 зліва направо.
Програма використовує наступні правила для вибору найкращих місць.
- Правило 1: Усі місця в одному бронюванні повинні бути в одному ряду, поруч.
- Правило 2: Сидіння повинні бути якомога ближче до переду, потім як можна ближче ліворуч (найменша літера, потім найменша цифра)
Напишіть функцію, яка приймає кількість шуканих квитків як цілий вхід ( n
) і виводить найкращі місця, наявні в списку довжини n
.
Ваша програма повинна:
- Вихід,
-1
якщо 1> Вхід або Вхід> 15 * - Вихідні дані,
-1
якщо місць недоступні * - Майте функцію,
B(n)
яку користувач може використовувати для введення потрібної кількості місць.
* Ви можете вивести -1 у списку, якщо це полегшить
Приклади
I / O
Дзвінок B(5)
на новому масиві повинен повернутися. [A1, A2, A3, A4, A5]
Виклик B(2)
після цього повинен повернутися [A6, A7]
Виклик B(10)
після цього, після чого повинен повернутися. [B1, B2, ... B9, B10]
Виклик B(-1)
повинен завжди повертатися-1
Без гольфу Solution Python
Theatre = [ [False] * 16 ] * 11
def B(n):
if 0 <= n <= 15:
for i in range(10):
for j in range(15-n+1):
try:
if not Theatre[i][j]:
if not Theatre[i][j + n]:
row = i
start = j
List = []
for q in range(n):
List.append(chr(row + 65) + str(start + q + 1))
Theatre[row][start + q] = True
return List
except:
break
return -1