- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
کوئرا در راستای توسعهی محصولات خود، یک فرودگاه راهاندازی کرده است. از شما میخواهیم برنامهای بنویسید تا بتواند بخشی از دستورات برج مراقبت را انجام دهد.
این فرودگاه $k$ باند پرواز، برای بلند شدن (take-off
) یا فرود آمدن (landing
) هواپیماها دارد. این $k$ باند از ۱ تا $k$ شماره گذاری شدهاند.
هر هواپیما یک رشته به طول ۱۰ و یکتا از ارقام به نام <ID>
دارد که آن هواپیما را به صورت یکتا مشخص میکند.
در هر لحظه، هر هواپیما، یکی از چهار وضعیت زیر را دارد:
- در فرودگاه کوئرا است و هیچ باندی را اشغال نکرده است.
- در فرودگاه کوئرا است ولی یکی از باندها را اشغال کرده و در حال بلند شدن است.
- در فرودگاه کوئرا است ولی یکی از باندها را اشغال کرده و در حال فرود آمدن است.
- در فرودگاه کوئرا نیست. (یعنی این هواپیما تا کنون دیده نشده یا از همین فرودگاه به پرواز در آمده است.)
میدانیم در ابتدا $n$ هواپیما در فرودگاه کوئرا است (وضعیت ۱) و <ID>
همهی این $n$ هواپیما را داریم.
برای برج مراقبت این فرودگاه چندین دستور میآید که از شما میخواهیم به آنها رسیدگی کنید. هر دستور به یکی از فرمتهای زیر است.
دستور TAKE-OFF
TAKE-OFF
TAKE-OFF <ID>
این دستور یعنی هواپیمای با آیدی <ID>
قصد بلندشدن از فرودگاه را دارد.
- اگر این هواپیما در وضعیت
4
است پیامYOU ARE NOT HERE
را چاپ کنید. - اگر این هواپیما در وضعیت
3
است پیامYOU ARE LANDING NOW
را چاپ کنید. - اگر این هواپیما در وضعیت
2
است پیامYOU ARE TAKING OFF
را چاپ کنید. - اگر این هواپیما در وضعیت
1
است ولی هیچ باند خالی نداریم پیامNO FREE BOUND
را چاپ کنید. - در صورتی که هیچ کدام از اتفاقات بالا نیفتاد ابتدا وضعیت هواپیما را به
2
تغییر دهید و سپس هواپیما را به اولین (کمترین شماره) باند خالی انتقال دهید تا بلند شود.
دستور LANDING
LANDING
LANDING <ID>
این دستور یعنی هواپیمای با آیدی <ID>
قصد نشستن در فرودگاه را دارد.
- اگر این هواپیما در وضعیت
1
است پیامYOU ARE HERE
را چاپ کنید. - اگر این هواپیما در وضعیت
2
است پیامYOU ARE TAKING OFF
را چاپ کنید. - اگر این هواپیما در وضعیت
3
است پیامYOU ARE LANDING NOW
را چاپ کنید. - اگر این هواپیما در وضعیت
4
است ولی هیچ باند خالی نداریم پیامNO FREE BOUND
را چاپ کنید. - در صورتی که هیچ کدام از اتفاقات بالا نیفتاد ابتدا وضعیت هواپیما را به
3
تغییر دهید و سپس هواپیما را به آخرین (بزرگترین شماره) باند خالی انتقال دهید تا فرود بیاید.
دستور PLANE-STATUS
PLANE-STATUS
PLANE-STATUS <ID>
این دستور وضعیت هواپیمای با آیدی <ID>
را در این لحظه درخواست میکند و شما باید شماره وضعیت این هواپیما را چاپ کنید.
دستور BAND-STATUS
BAND-STATUS
BAND-STATUS <LINE>
این دستور وضعیت باند <LINE>
را در این لحظه درخواست میکند و شما باید آیدی هواپیمایی که در این خط هست را چاپ کنید و اگر این باند آزاد است و هواپیمایی در آن نیست کلمه FREE
را چاپ کنید.
ورودی
در سطر اول ورودی دو عدد صحیح $n$ و $k$ آمده است که به ترتیب نشاندهندهی تعداد هواپیماهای داخل فرودگاه کوئرا و تعداد باندهای فرودگاه کوئرا است.
$$1 \le n, k \le 100$$
در $n$ سطر بعدی در هر سطر یک رشته ۱۰ رقمی که نشاندهندهی آیدی هواپیماهای داخل فرودگاه است.
در سطر بعدی عدد صحیح $q$ آمده است که نشاندهندهی تعداد دستورات است.
$$1 \le q \le 1000$$
سپس در هر کدام از $q$ سطر بعدی یکی از دستورهای توضیح داده شده در کادر میآید.
خروجی
خروجی شامل حداکثر $q$ سطر است که در سطر $i$ام خروجی متناسب با دستورها را چاپ میشود.
مثال
ورودی نمونه ۱
3 4
0000000001
0000000002
0000000003
5
TAKE-OFF 0000000001
LANDING 0000000004
PLANE-STATUS 0000000001
BAND-STATUS 4
LANDING 0000000002
خروجی نمونه ۱
2
0000000004
YOU ARE HERE
توضیحات نمونه ۱
در ابتدا ۳ هواپیما با آیدیهای 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
خروجی نمونه ۲
3
1234567891
FREE
NO FREE BOUND
4
توضیحات نمونه ۲
در ابتدا ۲ هواپیما با آیدیهای 1000000000
و 0002000000
در فرودگاه کوئرا قرار دارند. ۵ باند در این فرودگاه داریم که در ابتدا هر ۵تای آنها خالی هستند.
-
در دستور اول هواپیمای
0002000000
قصد بلند شدن دارد. با توجه به اینکه در این لحظه در فرودگاه کوئرا است و در وضعیت ۱ قرار دارد، میتواند وارد باند ۱ شود. (اولین باند خالی است.) -
در دستور دوم هواپیمای
1234567891
قصد فرود در فرودگاه کوئرا را دارد. باتوجه به اینکه این هواپیما را تاکنون ندیدهایم پس در فرودگاه کوئرا اکنون حضور ندارد و روی هوا است و میتواند در باند ۵ فرود بیاید. (آخرین باند خالی است) -
در دستور سوم وضعیت هواپیمای
1234567891
پرسیده میشود. این هواپیما در وضعیت ۳ (در حال فرود آمدن) قرار دارد. پس عدد ۳ چاپ میشود. -
در دستور چهارم وضعیت باند ۵ پرسیده میشود. در این باند هواپیمای
1234567891
قرار دارد و باید رشته1234567891
چاپ شود. -
در دستور پنجم هواپیمای
9876543219
قصد فرود در فرودگاه کوئرا را دارد. باتوجه به اینکه این هواپیما را تاکنون ندیدهایم پس در فرودگاه کوئرا اکنون حضور ندارد و روی هوا است و میتواند در باند ۴ فرود بیاید. (آخرین باند خالی است) -
در دستور ششم هواپیمای
5555555555
قصد فرود در فرودگاه کوئرا را دارد. باتوجه به اینکه این هواپیما را تاکنون ندیدهایم پس در فرودگاه کوئرا اکنون حضور ندارد و روی هوا است و میتواند در باند ۳ فرود بیاید. (آخرین باند خالی است) -
در دستور هفتم وضعیت باند ۲ پرسیده میشود. در این باند هیچ هواپیمایی وجود ندارد، پس کلمه
FREE
چاپ میشود. -
در دستور هشتم هواپیمای
1000000000
قصد بلند شدن دارد. با توجه به اینکه در این لحظه در فرودگاه کوئرا است و در وضعیت ۱ قرار دارد، میتواند وارد باند ۲ شود. (اولین باند خالی است.) -
در دستور نهم هواپیمای
3434343434
قصد فرود در فرودگاه کوئرا را دارد. باتوجه به اینکه این هواپیما را تاکنون ندیدهایم پس در فرودگاه کوئرا اکنون حضور ندارد و روی هوا است ولی هیچ باند خالی برای فرود وجود ندارد، پس عبارتNO FREE BOUND
چاپ میشود. -
در دستور دهم وضعیت هواپیمای
6666666666
پرسیده میشود. این هواپیما را تا کنون ندیدهایم پس در وضعیت ۴ قرار دارد. پس عدد ۴ چاپ میشود.
ارسال پاسخ برای این سؤال