+ محدودیت زمان جاوا: ۲ ثانیه
+ محدودیت زمان پایتون: ۳ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
میخواهیم یک بازی کیکپزی بسازیم که در آن یک کیک ساده با اندازۀ مشخص به بازیکن داده میشود و او باید با انجام دستورالعمل برنامهریزی شده، کیک نهایی را تحویل دهد.
# دستورات
### پختن کیک با اندازۀ دادهشده
```
BAKE height width
```
کیک اولیه را که مستطیلی با ارتفاع `height` و طول `width` از $o$هاست، با توجه به دستورالعمل میپزد و آن را چاپ میکند.
$$ 1 \leq height < 100 $$
$$ 1 \leq width < 100 $$
<details>
<summary>مثال</summary>
با اجرای دستور زیر:
```
BAKE 3 5
```
کیک اولیه، به این شکل خواهد شد:
```
ooooo
ooooo
ooooo
```
</details>
----
## فرمانهای افزودن عملیات به دستورالعمل
در ابتدای برنامه دستورالعمل خالی است. در نتیجه با اجرای فرمان پختن کیک، همان کیک اولیه خروجی داده میشود. با اجرای فرمانهای زیر میتوانیم به دستورالعمل، عملیات اضافه کنیم. حال اگر فرمان پخت کیک صادر شد، عملیاتهای افزوده شده به ترتیب روی کیک اولیه اجرا میشوند.
### ۱. افزودن خامه
```
ADD OPERATION => ADD CREAM
```
به بالا و طرفین آخرین طبقه کیک خامه (`C`) اضافه و عبارت `Done` را در خروجی چاپ میکند.
<details>
<summary>مثال</summary>
اگر کیک به این شکل باشد:
```
ooo
ooo
```
پس از انجام عملیات، به این شکل خواهد شد:
```
CCCCC
CoooC
CoooC
```
</details>
### ۲. افزودن طعم
```
ADD OPERATION => ADD flavor TO where
```
قسمتهایِ موردِ نظرِ آخرینِ طبقۀ کیک را به طعم مشخصشده آغشته و عبارت `Done` را در خروجی چاپ میکند.
`flavor` میتواند شکلات (`K`)، توت فرنگی (`S`) یا موز (`B`) باشد.
`where` میتواند بالا (`TOP`) یا طرفین (`SIDES`) باشد.
<details>
<summary>مثال</summary>
اگر کیک به این شکل باشد:
```
oooo
oooo
oooo
```
با اجرای دستور زیر:
```
ADD S TO TOP
```
به این شکل خواهد شد:
```
SSSS
oooo
oooo
```
</details>
### ۳. افزودن طبقه
```
ADD OPERATION => ADD LAYER
```
یک طبقه را با ابعاد کیک اولیه، بر روی کیک فعلی قرار میدهد و عبارت `Done` را در خروجی چاپ میکند.
<details>
<summary>مثال</summary>
اگر کیک اولیه ارتفاع ۲ و طول ۴ داشته و کیک فعلی به شکل زیر باشد:
```
CCCCCC
CBBBBC
CooooC
```
به این شکل خواهد شد:
```
oooo
oooo
CCCCCC
CBBBBC
CooooC
```
</details>
----
### پایان برنامه
```
END
```
با اجرای این دستور، برنامه پایان مییابد.
## نکات
+ در نظر داشته باشید که دستورها همواره روی آخرین طبقه کیک اعمال میشوند. برای مثال اگر بخواهیم یک لایه خامه اضافه کنیم، تنها روی آخرین طبقه آن را انجام میدهیم.
+ کیک همواره متقارن است. بنابراین امکان یکسان نبودن طول طبقهها را در نظر داشته باشید و فضای خالی را با space پر کنید. همچنین این امکان وجود دارد که طبقات بالایی طول بیشتری داشته باشند.
<details>
<summary>مثال</summary>
اگر کیک اولیه ارتفاع ۲ و طول ۳ داشته و کیک فعلی به شکل زیر باشد:
```
KKK
ooo
```
با اجرای ادامه دستوالعمل به شکل زیر ممکن است بشود:
```
CCCCC
CoooC
CoooC
KKK
ooo
```
</details>
# ورودی
در هر خط ورودی، یکی از دستوراتی که در بالا توضیح داده شد، میآید. برنامه با دستور `END` خاتمه مییابد.
# خروجی
با توجه به توضیحات بالا، به ازای هر دستور، خروجی مورد نظر را چاپ کنید.
## ورودی نمونه ۱
```
BAKE 1 1
ADD OPERATION => ADD CREAM
BAKE 2 3
ADD OPERATION => ADD K TO SIDES
BAKE 2 3
ADD OPERATION => ADD LAYER
BAKE 1 3
ADD OPERATION => ADD S TO SIDES
BAKE 1 3
ADD OPERATION => ADD B TO TOP
BAKE 1 3
END
```
## خروجی نمونه ۱
```
o
Done
CCCCC
CoooC
CoooC
Done
KCCCK
KoooK
KoooK
Done
ooo
KCCCK
KoooK
Done
SoS
KCCCK
KoooK
Done
BBB
KCCCK
KoooK
```
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.