কার্য
একটি থিয়েটার 10 সারি, লেবেল করা হয়েছে A
থেকে J
ফিরে সামনে থেকে, এবং প্রতিটি সারিতে 15 আসন, 15 1 নম্বর বাঁ দিক থেকে ডানদিকে।
প্রোগ্রামটি সেরা আসনগুলি বেছে নেওয়ার জন্য নিম্নলিখিত বিধিগুলি ব্যবহার করে।
- বিধি 1: একটি বুকিংয়ের সমস্ত আসন একে অপরের পাশে একই সারিতে থাকতে হবে।
- বিধি 2: আসনগুলি অবশ্যই যথাসম্ভব সামনের কাছাকাছি হতে হবে, তারপরে যতটা সম্ভব বামের কাছাকাছি হওয়া উচিত (সর্বনিম্ন চিঠি, তারপরে সর্বনিম্ন সংখ্যা)
একটি ফাংশন লিখুন যা পূর্ণসংখ্যার ইনপুট ( n
) হিসাবে চেয়েছিল টিকিটের সংখ্যা নেয় এবং দৈর্ঘ্যের তালিকায় সেরা আসনগুলিকে আউটপুট দেয় n
।
আপনার প্রোগ্রামটি করা উচিত:
-1
1> ইনপুট বা ইনপুট> 15 * আউটপুট-1
আসনগুলি উপলভ্য না হলে আউটপুট *B(n)
ব্যবহারকারী একটি পছন্দসই সংখ্যক আসন ইনপুট করতে ব্যবহার করতে পারেন এমন একটি ফাংশন রয়েছে ।
* তালিকা -1 এটি সহজ করে যদি আপনি আউটপুট করতে পারেন
উদাহরণ
ইনপুট / আউটপুট
কল করা হচ্ছে B(5)
একটি নতুন অ্যারে ফিরে উচিত [A1, A2, A3, A4, A5]
কলিং B(2)
পর যে তারপর ফিরে যাওয়া উচিত [A6, A7]
কলিং B(10)
পর যে তারপর ফিরে যাওয়া উচিত [B1, B2, ... B9, B10]
কলিং B(-1)
সবসময় ফেরত পাঠাবেন-1
আন-গল্ফড সলিউশন পাইথন
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