# تمرین ۹: مرکز پشتیبانی و دستور `cat` ## صورت سؤال یک تیم پشتیبانی برای هر پروژه یک فایل لاگ نگه می‌دارد و شما باید رفتار چند دستور ساده را شبیه‌سازی کنید. دستورهای ممکن: - `touch f` اگر فایل `f` وجود نداشته باشد آن را خالی می‌سازد؛ اگر وجود داشته باشد، محتوا تغییر نمی‌کند. - `write f s` محتوای فایل `f` را دقیقاً برابر یک خط `s` قرار می‌دهد (بازنویسی کامل). - `append f s` یک خط `s` را به انتهای فایل `f` اضافه می‌کند. - `cat f` اگر فایل وجود نداشته باشد باید `ERROR` چاپ شود. اگر وجود داشته باشد ولی خالی باشد باید `EMPTY` چاپ شود. وگرنه باید کل محتوای فایل چاپ شود. برای جدا کردن خروجیِ چند دستور `cat` از هم، بعد از خروجی هر `cat` (به جز آخری) یک خط شامل `###` چاپ کنید. ## ورودی در خط اول عدد `q` تعداد دستورها آمده است. در `q` خط بعدی، هر خط یکی از دستورهای بالا است. نام فایل‌ها (`f`) فقط شامل حروف انگلیسی، عدد، `_` و `.` است. `s` یک متن یک‌خطی است که می‌تواند شامل فاصله باشد و تا انتهای خط ادامه دارد. ## خروجی خروجی تمام دستورهای `cat` را طبق توضیحات چاپ کنید و بین خروجی‌ها (به جز آخرین `cat`) یک خط `###` قرار دهید. ## محدودیت‌ها - `1 ≤ q ≤ 10^4` - طول `s` حداکثر 100 کاراکتر است. ## نمونه **ورودی نمونه** ```text 9 cat log.txt touch log.txt cat log.txt append log.txt ticket1 append log.txt ticket2 cat log.txt write log.txt reset cat log.txt cat missing.txt ``` **خروجی نمونه** ```text ERROR ### EMPTY ### ticket1 ticket2 ### reset ### ERROR ```