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

در این برنامه از شما خواسته شده است تا یک ماشین متنی کوچک با مجموعه‌ای از قابلیت های ساده را پیاده‌سازی نمایید. روال کار بدین صورت است که در آغاز کار برنامه یک رشته متنی اولیه (به طول حداکثر ۱۰۰۰) را از ورودی دریافت می‌کند. در ادامه تا زمانی‌که دستور خروج را دریافت کند در هر نوبت کاربر درخواست یک عملیات بر روی رشته متنی می‌دهد.

عملیات‌ها به شرح زیر تعریف شده‌اند:

عملیات SHIFT-R N

تمام کاراکترهای عبارت را به صورت چرخشی N واحد به سمت راست منتقل می‌کند.

عملیات SHIFT-L N

تمام کاراکترهای عبارت را به صورت چرخشی N واحد به سمت چپ منتقل می‌کند.

عملیات EXTEND N

به انتهای رشته موجود N کاراکتر جدید اضافه می‌کند و به عنوان مقدار پیشفرض کاراکترها، ستاره (*) قرار میدهد.

عملیات SHRINK N

از انتهای رشته، N‌ کاراکتر حذف می‌کند. درصورتی که طول رشته کمتر از N‌ بود،‌رشته حاصل یک رشته خالی خواهد بود.

عملیات REVERSE

رشته را معکوس می‌کند.

عملیات PUT I C

حرف مکان Iام رشته را با حروف C جایگزین می‌کند.توجه داشته باشید که شماره مکان‌ها از یک آغاز می‌شود و I ‌همواره کوچکتر مساوی طول رشته خواهد بود.

عملیات PRINT

رشته فعلی را چاپ می‌کند و به خط بعد می‌رود.

عملیات EXIT

اتمام برنامه

ورودی

در سطر اول ورودی رشته اولیه ورودی داده می‌شود. تضمین می‌شود طول این رشته حداکثر ۱۰۰۰ کاراکتر باشد.

در سطرهای بعدی، در هر سطر، یکی از عملیات‌های بالا که در متن سوال گفته شده، داده می‌شود. تضمین می‌شود که همواره آخرین عملیات EXIT باشد. همچنین تضمین می‌شود حداکثر ۱۰۰۰ عملیات ورودی داده می‌شود.

خروجی

برنامه شما تنها به ازای عملیات چاپ خروجی خواهد داشت و به ازای سایر دستورات صرفاً عملیات موردنظر را برروی رشته متنی انجام می‌دهد.

مثال‌ها

ورودی نمونه ۱

initial string
PRINT
EXTEND 2
SHIFT-R 3
PRINT
PUT 3 O
REVERSE
SHRINK 2
PRINT
EXIT
Plain text

خروجی نمونه ۱

initial string
g**initial strin
nirts laitiniO
Plain text

ورودی نمونه ۲

Test
PRINT
SHRINK 20
PRINT
EXTEND 2
PRINT
EXIT
Plain text

خروجی نمونه ۲

Test

**
Plain text

ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.