- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
میخواهیم یک بازی کیکپزی بسازیم که در آن یک کیک ساده با اندازۀ مشخص به بازیکن داده میشود و او باید با انجام دستورالعمل برنامهریزی شده، کیک نهایی را تحویل دهد.
دستورات
پختن کیک با اندازۀ دادهشده
کیک اولیه را که مستطیلی با ارتفاع height
و طول width
از هاست، با توجه به دستورالعمل میپزد و آن را چاپ میکند.
مثال
با اجرای دستور زیر:
کیک اولیه، به این شکل خواهد شد:
فرمانهای افزودن عملیات به دستورالعمل
در ابتدای برنامه دستورالعمل خالی است. در نتیجه با اجرای فرمان پختن کیک، همان کیک اولیه خروجی داده میشود. با اجرای فرمانهای زیر میتوانیم به دستورالعمل، عملیات اضافه کنیم. حال اگر فرمان پخت کیک صادر شد، عملیاتهای افزوده شده به ترتیب روی کیک اولیه اجرا میشوند.
۱. افزودن خامه
به بالا و طرفین آخرین طبقه کیک خامه (C
) اضافه و عبارت Done
را در خروجی چاپ میکند.
مثال
اگر کیک به این شکل باشد:
پس از انجام عملیات، به این شکل خواهد شد:
۲. افزودن طعم
قسمتهایِ موردِ نظرِ آخرینِ طبقۀ کیک را به طعم مشخصشده آغشته و عبارت Done
را در خروجی چاپ میکند.
flavor
میتواند شکلات (K
)، توت فرنگی (S
) یا موز (B
) باشد.
where
میتواند بالا (TOP
) یا طرفین (SIDES
) باشد.
مثال
اگر کیک به این شکل باشد:
با اجرای دستور زیر:
به این شکل خواهد شد:
۳. افزودن طبقه
یک طبقه را با ابعاد کیک اولیه، بر روی کیک فعلی قرار میدهد و عبارت Done
را در خروجی چاپ میکند.
مثال
اگر کیک اولیه ارتفاع ۲ و طول ۴ داشته و کیک فعلی به شکل زیر باشد:
به این شکل خواهد شد:
پایان برنامه
با اجرای این دستور، برنامه پایان مییابد.
نکات
- در نظر داشته باشید که دستورها همواره روی آخرین طبقه کیک اعمال میشوند. برای مثال اگر بخواهیم یک لایه خامه اضافه کنیم، تنها روی آخرین طبقه آن را انجام میدهیم.
- کیک همواره متقارن است. بنابراین امکان یکسان نبودن طول طبقهها را در نظر داشته باشید و فضای خالی را با space پر کنید. همچنین این امکان وجود دارد که طبقات بالایی طول بیشتری داشته باشند.
مثال
اگر کیک اولیه ارتفاع ۲ و طول ۳ داشته و کیک فعلی به شکل زیر باشد:
با اجرای ادامه دستوالعمل به شکل زیر ممکن است بشود:
ورودی
در هر خط ورودی، یکی از دستوراتی که در بالا توضیح داده شد، میآید. برنامه با دستور END
خاتمه مییابد.
خروجی
با توجه به توضیحات بالا، به ازای هر دستور، خروجی مورد نظر را چاپ کنید.
مثال
ورودی نمونه ۱
خروجی نمونه ۱
ارسال پاسخ برای این سؤال