تمرین ۱۰: ادغامگرِ گزارشها (شبیه cat با > و >>)
صورت سؤال
یک ابزار ساده دارید که با منطق دستور cat و تغییر مسیر (> و >>) گزارشها را میسازد. شما باید خروجی نهایی فایل final.txt را بعد از اجرای دستورها به دست آورید.
دستورهای ممکن:
touch fاگر فایلfوجود نداشته باشد آن را خالی میسازد؛ اگر وجود داشته باشد، محتوا تغییر نمیکند.write f sمحتوای فایلfرا دقیقاً برابر یک خطsقرار میدهد (بازنویسی کامل).append f sیک خطsرا به انتهای فایلfاضافه میکند.merge a b > cمحتوای فعلی فایلaسپس محتوای فعلی فایلbرا پشت سر هم در نظر بگیرید و نتیجه را کامل روی فایلcبنویسید (بازنویسی کامل).merge a b >> cهمان ادغام است، با این تفاوت که نتیجه باید به انتهای فایلcاضافه شود.
نکته: اگر فایلهای a یا b وجود نداشتند، در عملیات merge به عنوان فایل خالی در نظر بگیرید.
در پایان، اگر final.txt وجود نداشت یا خالی بود باید دقیقاً EMPTY چاپ شود.
ورودی
در خط اول عدد q تعداد دستورها آمده است.
در q خط بعدی، هر خط یکی از دستورهای بالا است.
نام فایلها فقط شامل حروف انگلیسی، عدد، _ و . است.
s یک متن یکخطی است که میتواند شامل فاصله باشد و تا انتهای خط ادامه دارد.
خروجی
محتوای نهایی final.txt را چاپ کنید (هر خط جداگانه).
اگر فایل وجود نداشت یا خالی بود، فقط EMPTY چاپ کنید.
محدودیتها
1 ≤ q ≤ 2×10^4- طول
sحداکثر 100 کاراکتر است.
نمونه
ورودی نمونه
10
write a.txt A1
append a.txt A2
write b.txt B1
touch final.txt
merge a.txt b.txt > final.txt
append b.txt B2
merge a.txt b.txt >> final.txt
touch a.txt
write a.txt NEW
merge a.txt missing.txt >> final.txt
خروجی نمونه