PA1_V2.pdf

‫راحت تر از آب خوردن‬
‫حسن و حسین بازی جدیدی میکنند خیلی قشنگ! در این بازی حسین گوشه ای مینشیند و بازی را فقط نگاه میکند‪.‬‬
‫حسن پشته ای دارد که چهار عملیات زیر را پشتیبانی میکند‪:‬‬
‫‪:push x‬این دستور عضو ‪ x‬را به سر پشته اضافی میکند‪.‬‬
‫‪:pop‬این دستور سر پشته را حذف میکند(در صورت وجود)‬
‫‪:max‬این دستور عضو بیشینه ی پشته را برمیگرداند‪.‬‬
‫‪:min‬این دستور عضو کمینه ی پشته را برمیگرداند‪.‬‬
‫برنامه ای بنویسید که دستوارت پشته ی حسن را پشتیبانی کند‪.‬‬
‫ورودی‪:‬‬
‫در خط اول ورودی تعداد دستوارت و سپس به تعداد آن در خط های بعدی دستور آمده است‪.‬‬
‫تعداد کل دستورات ورودی از‬
‫کمتر میباشد‪.‬‬
‫وروردی و خروجی نمونه‪:‬‬
‫‪Output‬‬
‫‪4‬‬
‫‪4‬‬
‫‪Input‬‬
‫‪5‬‬
‫‪push 4‬‬
‫‪push 3‬‬
‫‪pop‬‬
‫‪max‬‬
‫‪min‬‬
‫‪Wordpad‬‬
‫برنامهی ویرایش متنی طراحی کردهایم که در این سوال از شما میخواهیم آن را پیادهسازی کنید‪ .‬در حافظهی این برنامه رشتهای‬
‫از حروف هست که نشانگر آن در جای خاصی در بین حروف قرار دارد‪ .‬کاربر میتواند رشته را تغییر دهد‪ ،‬جای نشانگر را عوض کند و یا از‬
‫برنامه بخواهد وضعیت رشته را به او نمایش دهد‪ .‬دستوراتی که برنامهی ما پشتیبانی میکند به شرح زیر است‪:‬‬
‫‪Write s‬‬
‫رشتهی ‪( s‬فرض کنید به طول حداکثر ‪ )01‬قبل از نشانگر در رشته قرار میگیرد‪.‬‬
‫‪Jump d‬‬
‫نشانگر ‪ d‬تا جابجا میشود‪ .‬عدد ‪ d‬میتواند منفی نیز باشد (در این صورت نشانگر به عقب حرکت میکند)‪ .‬توجه کنید که نشانگر از محدودهی‬
‫رشته خارج نمیشود‪ ،‬بنابراین در صورت بزرگ بودن ‪ ،d‬در ابتدا (یا انتها)ی رشته متوقف میشود‪.‬‬
‫‪Delete d‬‬
‫نشانگر همانند قسمت قبل ‪ d‬تا جابجا می شود‪ ،‬تنها با این تفاوت که از هر حرفی که عبور کند‪ ،‬آن حرف از رشته حذف میشود‪.‬‬
‫‪Print‬‬
‫این دستور در یک خط‪ ،‬حرفی که قبل از نشانگر قرار گرفته را چاپ میکند (اگر حرفی وجود نداشت خط خالی چاپ میکند)‪.‬‬
‫‪End‬‬
‫این دستور به معنی پایان ویرایش است‪ ،‬در یک خط کل رشته برای کاربر چاپ میشود و برنامه پایان مییابد‪.‬‬
‫ورودی‬
‫تعداد ‪Q‬تا دستور از نوع چهار دستور اول و در پایان دستور ‪.End‬‬
‫خروجی‬
‫به ازای هر دستور ‪ Print‬یک حرف (در یک خط جدا) و در خط آخر کل رشته‪.‬‬
‫محدودیتها‪:‬‬
‫‪-10 < d < 10 ، Q < 106‬‬
‫زمان‪:‬‬
‫‪ 0‬ثانیه‬
‫ورودی و خروجی نمونه‪:‬‬
‫‪Output‬‬
‫‪o‬‬
‫‪HelloWorld‬‬
‫‪Input‬‬
‫‪Write World‬‬
‫‪Jump -5‬‬
‫‪Write Hello‬‬
‫‪Print‬‬
‫‪End‬‬
Write LinkedList?
Jump -1
Print
Delete 5
Write !
End
t
LinkedList!