Tugas
Sebuah teater memiliki 10 baris, berlabel A
untuk J
dari depan ke belakang, dan 15 kursi di setiap baris, nomor 1 sampai 15 dari kiri ke kanan.
Program ini menggunakan aturan berikut untuk memilih kursi terbaik.
- Aturan 1: Semua kursi dalam satu pemesanan harus di baris yang sama, di sebelah satu sama lain.
- Aturan 2: Kursi harus sedekat mungkin ke depan, lalu sedekat mungkin ke kiri (huruf terendah, lalu angka terendah)
Tulis fungsi yang mengambil jumlah tiket yang diinginkan sebagai input integer ( n
), dan output kursi terbaik yang tersedia dalam daftar panjang n
.
Program Anda harus:
- Keluaran
-1
jika 1> Input atau Input> 15 * - Keluaran
-1
jika kursi tidak tersedia * - Memiliki fungsi
B(n)
yang dapat digunakan pengguna untuk memasukkan jumlah kursi yang diinginkan.
* Anda dapat menampilkan -1 dalam daftar jika membuatnya lebih mudah
Contohnya
I / O
Memanggil B(5)
pada array baru harus kembali [A1, A2, A3, A4, A5]
Memanggil B(2)
setelah itu kemudian kembali [A6, A7]
Memanggil B(10)
setelah itu kemudian kembali [B1, B2, ... B9, B10]
Memanggil B(-1)
harus selalu kembali-1
Batalkan Solusi 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