Stack
یک ماشین پشتهای شامل یک شمارنده، یک پشته و یک صفحهی نمایش است. یک برنامه دنبالهای از دو دستور زیر است:
- دستور Push: این دستور به مقدار شمارندهیک واحد اضافه میکند و سپس مقدار جدید شمارنده را به روی پشته اضافه میکند.
- دستور Pop: این دستور بالاترین عدد ذخیره شده در پشته را از پشته حذف و در صفحهی نمایش چاپ میکند. اگر پشته خالی باشد این دستور قانونی نمیباشد و ماشین خراب میشود.
در ابتدای اجرای هر برنامه، پشته و صفحهی نمایش ماشین خالی هستند و مقدار شمارنده برابر صفر است.
جایگشتی از اعداد ۱ تا $n$ داده شده است. برنامهای به زبان این ماشین بنویسید که (بدون خراب شدن) در صفحهی نمایش خود، این جایگشت را چاپ کند.
ورودی
- در سطر اول ورودی عدد $n$ ($n \leq 10^5$) آمده است.
- در سطر بعد $n$ عدد آمدهاند که نمایش دهندهی جایگشتی هستند که قرار است در صفحهی نمایش ماشین چاپ شود.
خروجی
- در صورتی که اینکار امکانپذیر نیست، در تنها سطر خروجی عدد $-1$ را چاپ کنید.
- در غیر این صورت، در یک سطر دستورات برنامه را بنویسید. به ازای هر دستور یکی از دو حرف U و P را چاپ کنید. U نشاندهندهی Push و P نشاندهندهی Pop است.
محدودیتها
- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
ورودی و خروجی نمونه
| ورودی نمونه | خروجی نمونه |
|---|---|
| 4 3 2 1 4 | UUUPPPUP |
پاسخ
منتظر پر کردن این قسمت توسط علاقمندان هستیم.
| ▸ سوال قبل | سوال بعد ◂ |