لینک‌های مفید برای شرکت در مسابقه:

فرودگاه


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

کوئرا در راستای توسعه‌ی محصولات خود، یک فرودگاه راه‌اندازی کرده است. از شما می‌خواهیم برنامه‌ای بنویسید تا بتواند بخشی از دستورات برج مراقبت را انجام دهد.

توضیح تصویر

این فرودگاه kk باند پرواز، برای بلند شدن (take-off) یا فرود آمدن (landing) هواپیماها دارد. این kk باند از ۱ تا kk شماره گذاری شده‌اند.

هر هواپیما یک رشته به طول ۱۰ و یکتا از ارقام به نام <ID> دارد که آن هواپیما را به صورت یکتا مشخص می‌کند.

در هر لحظه، هر هواپیما، یکی از چهار وضعیت زیر را دارد:

  1. در فرودگاه کوئرا است و هیچ باندی را اشغال نکرده است.
  2. در فرودگاه کوئرا است ولی یکی از باندها را اشغال کرده و در حال بلند شدن است.
  3. در فرودگاه کوئرا است ولی یکی از باندها را اشغال کرده و در حال فرود آمدن است.
  4. در فرودگاه کوئرا نیست. (یعنی این هواپیما تا کنون دیده نشده یا از همین فرودگاه به پرواز در آمده است.)

می‌دانیم در ابتدا nn هواپیما در فرودگاه کوئرا است (وضعیت ۱) و <ID> همه‌ی این nn هواپیما را داریم.

برای برج مراقبت این فرودگاه چندین دستور می‌آید که از شما می‌خواهیم به آن‌ها رسیدگی کنید. هر دستور به یکی از فرمت‌های زیر است.

دستور TAKE-OFF
TAKE-OFF <ID> 
Plain text

این دستور یعنی هواپیمای با آی‌دی <ID> قصد بلندشدن از فرودگاه را دارد.

  • اگر این هواپیما در وضعیت 4 است پیام YOU ARE NOT HERE را چاپ کنید.
  • اگر این هواپیما در وضعیت 3 است پیام YOU ARE LANDING NOW را چاپ کنید.
  • اگر این هواپیما در وضعیت 2 است پیام YOU ARE TAKING OFF را چاپ کنید.
  • اگر این هواپیما در وضعیت 1 است ولی هیچ باند خالی نداریم پیام NO FREE BOUND را چاپ کنید.
  • در صورتی که هیچ کدام از اتفاقات بالا نیفتاد ابتدا وضعیت هواپیما را به 2 تغییر دهید و سپس هواپیما را به اولین (کم‌ترین شماره) باند خالی انتقال دهید تا بلند شود.
دستور LANDING
LANDING <ID>
Plain text

این دستور یعنی هواپیمای با آی‌دی <ID> قصد نشستن در فرودگاه را دارد.

  • اگر این هواپیما در وضعیت 1 است پیام YOU ARE HERE را چاپ کنید.
  • اگر این هواپیما در وضعیت 2 است پیام YOU ARE TAKING OFF را چاپ کنید.
  • اگر این هواپیما در وضعیت 3 است پیام YOU ARE LANDING NOW را چاپ کنید.
  • اگر این هواپیما در وضعیت 4 است ولی هیچ باند خالی نداریم پیام NO FREE BOUND را چاپ کنید.
  • در صورتی که هیچ کدام از اتفاقات بالا نیفتاد ابتدا وضعیت هواپیما را به 3 تغییر دهید و سپس هواپیما را به آخرین (بزرگ‌ترین شماره) باند خالی انتقال دهید تا فرود بیاید.
دستور PLANE-STATUS
PLANE-STATUS <ID>
Plain text

این دستور وضعیت هواپیمای با آی‌دی <ID> را در این لحظه درخواست می‌کند و شما باید شماره وضعیت این هواپیما را چاپ کنید.

دستور BAND-STATUS
BAND-STATUS <LINE>
Plain text

این دستور وضعیت باند <LINE> را در این لحظه درخواست می‌کند و شما باید آی‌دی هواپیمایی که در این خط هست را چاپ کنید و اگر این باند آزاد است و هواپیمایی در آن نیست کلمه FREE را چاپ کنید.

ورودی🔗

در سطر اول ورودی دو عدد صحیح nn و kk آمده است که به ترتیب نشان‌دهنده‌ی تعداد هواپیماهای داخل فرودگاه کوئرا و تعداد باند‌های فرودگاه کوئرا است.

1n,k1001 \le n, k \le 100

در nn سطر بعدی در هر سطر یک رشته ۱۰ رقمی که نشان‌دهنده‌ی آی‌دی هواپیماهای داخل فرودگاه است.

در سطر بعدی عدد صحیح qq آمده است که نشان‌دهنده‌ی تعداد دستورات است.

1q10001 \le q \le 1000

سپس در هر کدام از qq سطر بعدی یکی از دستورهای توضیح داده شده در کادر می‌آید.

خروجی🔗

خروجی شامل حداکثر qq سطر است که در سطر iiام خروجی متناسب با دستورها را چاپ می‌شود.

مثال🔗

ورودی نمونه ۱🔗

3 4
0000000001
0000000002
0000000003
5
TAKE-OFF 0000000001
LANDING 0000000004
PLANE-STATUS 0000000001
BAND-STATUS 4
LANDING 0000000002
Plain text

خروجی نمونه ۱🔗

2
0000000004
YOU ARE HERE
Plain text
توضیحات نمونه ۱

در ابتدا ۳ هواپیما با آی‌دی‌های 0000000001، 0000000002 و 0000000003 در فرودگاه کوئرا قرار دارند. ۴ باند در این فرودگاه داریم که در ابتدا هر ۴تای آن‌ها خالی هستند.

  • در دستور اول هواپیمای 0000000001 قصد بلند شدن دارد. با توجه به اینکه در این لحظه در فرودگاه کوئرا است و در وضعیت ۱ قرار دارد، می‌تواند وارد باند ۱ شود. (اولین باند خالی است.)

  • در دستور دوم هواپیمای 0000000004 قصد فرود در فرودگاه کوئرا را دارد. باتوجه به اینکه این هواپیما را تاکنون ندیده‌ایم پس در فرودگاه کوئرا اکنون حضور ندارد و روی هوا است و می‌تواند در باند ۴ فرود بیاید. (آخرین باند خالی است)

  • در دستور سوم وضعیت هواپیمای 0000000001 پرسیده می‌شود. این هواپیما در وضعیت ۲ (در حال بلند شدن) قرار دارد. پس عدد ۲ چاپ می‌شود.

  • دستور چهارم وضعیت باند ۴ پرسیده می‌شود. در این باند هواپیمای 0000000004 قرار دارد و باید رشته 0000000004 چاپ شود.

  • در دستور پنجم هواپیمای 0000000002 قصد فرود آمدن در فرودگاه کوئرا را دارد ولی این هواپیما اکنون در فرودگاه کوئرا است؛ پس باید پیام YOU ARE HERE چاپ شود.

ورودی نمونه ۲🔗

2 5
1000000000
0002000000
10
TAKE-OFF 0002000000
LANDING 1234567891
PLANE-STATUS 1234567891
BAND-STATUS 5
LANDING 9876543219
LANDING 5555555555
BAND-STATUS 2
TAKE-OFF 1000000000
LANDING 3434343434
PLANE-STATUS 6666666666
Plain text

خروجی نمونه ۲🔗

3
1234567891
FREE
NO FREE BOUND
4
Plain text
توضیحات نمونه ۲

در ابتدا ۲ هواپیما با آی‌دی‌های 1000000000 و 0002000000 در فرودگاه کوئرا قرار دارند. ۵ باند در این فرودگاه داریم که در ابتدا هر ۵تای آن‌ها خالی هستند.

  • در دستور اول هواپیمای 0002000000 قصد بلند شدن دارد. با توجه به اینکه در این لحظه در فرودگاه کوئرا است و در وضعیت ۱ قرار دارد، می‌تواند وارد باند ۱ شود. (اولین باند خالی است.)

  • در دستور دوم هواپیمای 1234567891 قصد فرود در فرودگاه کوئرا را دارد. باتوجه به اینکه این هواپیما را تاکنون ندیده‌ایم پس در فرودگاه کوئرا اکنون حضور ندارد و روی هوا است و می‌تواند در باند ۵ فرود بیاید. (آخرین باند خالی است)

  • در دستور سوم وضعیت هواپیمای 1234567891 پرسیده می‌شود. این هواپیما در وضعیت ۳ (در حال فرود آمدن) قرار دارد. پس عدد ۳ چاپ می‌شود.

  • در دستور چهارم وضعیت باند ۵ پرسیده می‌شود. در این باند هواپیمای 1234567891 قرار دارد و باید رشته 1234567891 چاپ شود.

  • در دستور پنجم هواپیمای 9876543219 قصد فرود در فرودگاه کوئرا را دارد. باتوجه به اینکه این هواپیما را تاکنون ندیده‌ایم پس در فرودگاه کوئرا اکنون حضور ندارد و روی هوا است و می‌تواند در باند ۴ فرود بیاید. (آخرین باند خالی است)

  • در دستور ششم هواپیمای 5555555555 قصد فرود در فرودگاه کوئرا را دارد. باتوجه به اینکه این هواپیما را تاکنون ندیده‌ایم پس در فرودگاه کوئرا اکنون حضور ندارد و روی هوا است و می‌تواند در باند ۳ فرود بیاید. (آخرین باند خالی است)

  • در دستور هفتم وضعیت باند ۲ پرسیده می‌شود. در این باند هیچ هواپیمایی وجود ندارد، پس کلمه FREE چاپ می‌شود.

  • در دستور هشتم هواپیمای 1000000000 قصد بلند شدن دارد. با توجه به اینکه در این لحظه در فرودگاه کوئرا است و در وضعیت ۱ قرار دارد، می‌تواند وارد باند ۲ شود. (اولین باند خالی است.)

  • در دستور نهم هواپیمای 3434343434 قصد فرود در فرودگاه کوئرا را دارد. باتوجه به اینکه این هواپیما را تاکنون ندیده‌ایم پس در فرودگاه کوئرا اکنون حضور ندارد و روی هوا است ولی هیچ باند خالی برای فرود وجود ندارد، پس عبارت NO FREE BOUND چاپ می‌شود.

  • در دستور دهم وضعیت هواپیمای 6666666666 پرسیده می‌شود. این هواپیما را تا کنون ندیده‌ایم پس در وضعیت ۴ قرار دارد. پس عدد ۴ چاپ می‌شود.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.