مانی که عاشق گوش دادن به موسیقی است، بهتازگی دو هندزفری خریده است. اما از آنجا که کیفیت هندزفریهایش خوب نیست، ممکن از هر کدام از گوشیهایش، آهنگ متفاوتی پخش شود.
حال او که تمام دغدغهاش گوش دادن به موسیقی شده، از شما میخواهد که به او بگویید آیا با استفاده از دو هندزفری (ممکن است یکی از هندزفریها استفاده نشود)، میتواند یک موسیقی یکسان را از هر دو گوش خود بشنود یا خیر.
ورودی تنها شامل دو خط است. در خط اول، دو موسیقی در حال پخش در هندزفری اول، با فاصله از هم آمدهاند. در خط دوم نیز دو موسیقی در حال پخش در هندزفری دوم آمده است. در هر خط، عبارت اول، موسیقی در حال پخش از گوش سمت چپ هندزفری و عبارت دوم، موسیقی در حال پخش از گوش سمت راست هندزفری است (دقت کنید که گوشیهای هندزفریها قابل جابهجایی نیست).
تضمین میشود هر موسیقی، با یک حرف بزرگ انگلیسی نشان داده میشود.
در صورتی که مانی میتوانست با استفاده از دو هندزفری موجود، به یک موسیقی یکسان از هر دو گوش خود گوش دهد، عبارت YES
و در غیر این صورت عبارت NO
را چاپ نمایید.
برای آشنایی بیشتر با نحوهی کار با ورودی و خروجی و نحوهی داوری میتوانید اینجا و اینجا را مطالعه کنید.
مانی میتواند با انتخاب هر یک از هندزفریها، به یک موسیقی گوش کند. (موسیقی A
یا B
)
مانی میتواند با انتخاب گوشی سمت چپ (گوشی اول) از هندزفری اول و گوشی سمت راست (گوشی دوم) از هندزفری دوم، به موسیقی H
گوش کند.
مانی میتواند با انتخاب گوشی سمت راست (گوشی دوم) از هندزفری اول و گوشی سمت چپ (گوشی اول) از هندزفری دوم، به موسیقی F
گوش کند.
مانی به هیچ روشی نمیتواند به یک موسیقی یکسان از هر دو گوش، گوش دهد (دقت کنید که موسیقی O
از گوش سمت چپ هر دو هندزفری در حال پخش است).
متاسفانه نمایشگاه کار حضوری نیست و به همین دلیل تصمیم گرفتیم که غرفههای این نمایشگاه را بهصورت مجازی نمایش دهیم.
نمایشگاه کار کوئرا ۸ غرفه دارد. ساختمان این نمایشگاه بهصورت یک راهرو است که در هر کدام از دو طرف آن ۴ غرفه قرار دارد.
میدانیم در این نمایشگاه شرکت، ثبت نام کردهاند. پس باید تا از این غرفهها را آماده کنیم. ترتیب آماده کردن غرفهها در نمونهها آمده است.
در تنها سطر ورودی عدد صحیح آمده است که نشاندهنده تعداد غرفهها است.
مطابق با نمونههای سوال نقشه نمایشگاه کار را چاپ کنید. توجه کنید باید تمام کاراکترهای شما دقیقا مطابق با الگوی مسئله باشد. همچنین باید غرفه اول را نشان دهید و بقیه غرفهها را خالی بگذارید.
بانک مانی بسیار عجیب است، بهطوریکه هیچگاه به مشتریانش موجودی حسابشان را نمیگوید و تنها لیستی از تراکنشها به آنها میدهد. مانی که موجودی اولیه حساب خودش را فراموش کرده، به بانک میرود و لیست تراکنشهای خود را دریافت میکند. هر تراکنش به یکی از صورتهای زیر است:
HH:MM
موجودی حساب مانی تومان افزایش یافته است:HH:MM
مانی قصد کرده تومان از حسابش بردارد. اما موجودی حسابش کافی نبوده و تراکنش انجام نشده است:HH:MM
مانی تومان از حسابش برداشت کرده و موجودی حسابش تومان کاهش یافته است:به او کمک کنید حداقل موجودی اولیهی حسابش را بیابد. دقت کنید همهی ساعتهای داده شده برای یک روز هستند و شما باید حداقل موجودی اولیه حساب مانی را در ابتدای روز بدست آورید.
در خط اول ورودی عدد آمده که نشاندهندهی تعداد تراکنشها است. در هر خط از خط بعدی یک تراکنش آمده که به صورت یکی از ۳ حالت توضیح داده شده در صورت سوال است. توجه کنید زمان تراکنشها لزوما به ترتیب نیست.
تضمین میشود هیچ دو تراکنشی در یک زمان انجام نمیگیرند.
در تنها خط خروجی حداقل موجودی اولیه حساب مانی را چاپ کنید. همچنین اگر لیست تراکنشهای داده شده معتبر نبود عبارت DOROGHE
را چاپ کنید.
در اینصورت میتوان ثابت کرد مانی در ابتدا حداقل ۵۰ تومان در حسابش داشته است و موجودی اولیهای کمتر از این مقدار ممکن نیست.
در اینصورت میتوان ثابت کرد مانی در ابتدا حداقل ۳۰۰ تومان در حسابش داشته است.
در اینصورت میتوان ثابت کرد مانی در ابتدا حداقل ۳۹۰ تومان در حسابش داشته است.
در این مثال حساب مانی میتواند در ابتدا خالی باشد.
در ساعت 09:00
۲۰۰ تومان به حساب مانی ریخته شده است و سپس در ساعت 10:08
، موجودی او برای برداشت ۱۰۰ تومان کافی نبوده که تناقض است. زیرا در ساعت 10:08
حداقل ۲۰۰ تومان در حسابش وجود داشته و ۱۰۰ تومان قابل برداشت بوده است.
مانی به تازگی استخدام شده که خانهای بسازد! اولین مشکل مانی برای شروع، صافی زمین زیر خانه بود. به طور دقیقتر زمین زیر خانه به شکل جدولی از راست نامتناهی بود که ارتفاع ستون ام آن (از سمت چپ) است. مانند مثال زیر: (نقطهها در جدول نشانگر ادامهدار و نامتناهی بودن جدول از سمت راست است، برای مثال و است)
برای صافکاری سطح، مانی میتواند از ترکیب این دو عملیات استفاده کند:
توجه کنید هدف همارتفاع کردن ستونهایی است که حداقل یک واحد خاک دارند. به عبارت دیگر در آخر ارتفاع همهی ستونهایی که حداقل یک واحد خاک دارند باید برابر باشد. حال به مانی کمک کنید که با کمترین هزینه زمین را صاف کند.
در خط اول ورودی به ترتیب ، و داده میشود.
در خط دوم ورودی عدد آمده که امین آنها برابر با ارتفاع ستون ام یا همان است. توجه کنید برای مقدار برابر با صفر است.
در تنها خط خروجی، کمینهی هزینه را چاپ کنید.
میتوان با یکبار انجام عملیات ۲ به جواب رسید. در این مثال است. توجه کنید خاکها میتوانند به خانههای بعد از ستون اول نیز برسند
مثال مربوط به شکل اول سوال است که میتوان به ترتیب زیر عملیاتها را انجام داد:
در آخر جمع هزینههای این مثال برابر با ۵=۱+۳+۱ خواهد شد.
در این مثال تنها یک ستون وجود دارد و زمین از همان ابتدا صاف است.
میخواهیم یک سیستم برای طرح زوج و فرد پیادهسازی کنیم. در این سیستم هر نفر ممکن است چند ماشین داشته باشد. هر ماشین یک پلاک دارد که زوج یا فرد است. زوج یا فرد بودن یک پلاک بستگی به زوج یا فرد بودن رقم سمت راست پلاک دارد.
هر ماشین، میتواند در روزهای زوج یا فرد (بسته به پلاکش) در محدوده طرح زوج و فرد تردد کند و هیچ هزینهای لازم نیست بدهد. ولی اگه در روز غیر از زوجیت پلاکش وارد طرح شود، دو حالت دارد، یا طرح برای آن روز نخریده و جریمه میشود یا طرح خریده که هیچ مشکلی نیست.
با خرید یک طرح روزه برای یک خودرو، از فردای روزی که طرح خریداری شده است به مدت روز، رفت آمد در طرح مشکلی ندارد.
در این سیستم، هر نفر باید یک حساب داشته باشد که در ابتدا اعتبار حسابش صفر است و میتواند اعتبار این حساب را افزایش دهد و یا برای یک ماشینش یک طرح بخرد. (توجه کنید حسابها برای اشخاص است، نه ماشینها).
توجه کنید جریمه شدن یک شخص برای ورود به طرح، از اعتبار حساب این شخص برای خرید طرح جداست. یعنی نباید مبلغ جریمهها از حساب رانندهها کسر شود.
REGISTER
در این درخواست یک نفر با نام <USERNAME>
در لحظه <TIMESTAMP>
به سیستم طرح ترافیک اضافه میشود.
<USERNAME>
یک رشته به طول حداقل ۱ و حداکثر ۲۰ از حروف کوچک و بزرگ انگلیسی و ارقام است.<TIMESTAMP>
یک رشته به فرمت yyyy/mm/dd
است که زمان این اتفاق را نشان میدهد. تضمین میشود این زمان قابل قبول است.در صورتی این فرد با موفقیت به سیستم اضافه میشود که قبلاً هیچ کسی با این <USERNAME>
در سیستم ثبت نام نکرده باشد.
بعد از دریافت این درخواست، در صورتی که این فرد با موفقیت به سیستم اضافه شد پیام REGISTER DONE
و در غیر این صورت پیام INVALID USERNAME
را چاپ کنید.
مثالی از این درخواست:
REGISTER_CAR
در این درخواست یک نفر با نام <USERNAME>
با شماره پلاک <CAR_PLATE>
در لحظه <TIMESTAMP>
به سیستم طرح ترافیک اضافه میکند.
<USERNAME>
یک رشته به طول حداقل ۱ و حداکثر ۲۰ از حروف کوچک و بزرگ انگلیسی و ارقام است.<CAR_PLATE>
یک رشته به طول دقیقاً ۱۰ از ارقام است. این رشته میتواند با صفر آغاز شود.<TIMESTAMP>
یک رشته به فرمت yyyy/mm/dd
است که زمان این اتفاق را نشان میدهد.در صورت رخ دادن هر کدام از حالتهای زیر دقیقا یکی از پیامهای زیر را به الویت از بالا به پایین اجرا کنید:
<USERNAME>
وجود ندارد پیام INVALID USERNAME
را چاپ کنید.<CAR_PLATE>
) برای یک خودرو دیگر ثبت شده است (حتی اگر خودرو برای همین راننده باشد) پیام INVALID CAR PLATE
را چاپ کنید.REGISTER CAR DONE
را چاپ کنید.مثالی از این درخواست:
NEW_RECORD
در این درخواست یک ماشین با شماره پلاک <CAR_PLATE>
در لحظه <TIMESTAMP>
وارد محدوده طرح ترافیک شده است.
<CAR_PLATE>
یک رشته به طول دقیقاً ۱۰ از ارقام است. این رشته میتواند با صفر آغاز شود.<TIMESTAMP>
یک رشته به فرمت yyyy/mm/dd
است که زمان این اتفاق را نشان میدهد.اگر ماشینی با این شماره پلاک در سیستم ثبت نشده است پیام INVALID CAR PLATE
را چاپ کنید و در غیر این صورت اگر این درخواست در روز فرد آمده ولی پلاک ماشین زوج است یا درخواست در روز زوج آمده ولی پلاک ماشین فرد است و این ماشین برای این روز طرح ندارد پیام PENALTY RECORDED
را چاپ و راننده این ماشین را به اندازه ۱۰۰ جریمه کنید و در غیر این صورت پیام NORMAL RECORDED
را چاپ کنید.
مثالی از این درخواست:
BUY_LICENSE
در این درخواست یک نفر با نام <USERNAME>
برای ماشین خود با شماره پلاک <CAR_PLATE>
یک طرح ترافیک <LENGTH>
روزه در روز <TIMESTAMP>
میخرد.
<USERNAME>
یک رشته به طول حداقل ۱ و حداکثر ۲۰ از حروف کوچک و بزرگ انگلیسی و ارقام است.<CAR_PLATE>
یک رشته به طول دقیقاً ۱۰ از ارقام است. این رشته میتواند با صفر آغاز شود.<LENGTH>
یک عدد صحیح از ۱ تا ۱۰۰۰ است.<TIMESTAMP>
یک رشته به فرمت yyyy/mm/dd
است که زمان این اتفاق را نشان میدهد.در صورت رخ دادن هر کدام از حالتهای زیر دقیقا یکی از پیامهای زیر را به الویت از بالا به پایین اجرا کنید:
<USERNAME>
در سیستم وجود ندارد پیام INVALID USERNAME
را چاپ کنید.<CAR_PLATE>
ندارد پیام INVALID CAR PLATE
را چاپ کنید.NO ENOUGH MONEY
را چاپ کنید.BUY LICENSE DONE
را چاپ کنید.توجه کنید خرید طرح ترافیک برای یک خودرو در روز ام به مدت روز یعنی این راننده میتواند در روزهای در محدوده طرح ترافیک تردد کند.
همچنین توجه کنید اگر یک راننده قبلاً طرحی برای ماشین خود برای این روزها خریده باشد به روزهای این طرح اضافه نمیشود بلکه برای یک روز دو طرح دارد.
مثالی از این درخواست:
ADD_BALANCE
در این درخواست فردی با نام <USERNAME>
اعتبار حساب خود در این سامانه را به اندازه <AMOUNT>
در لحظه <TIMESTAMP>
افزایش میدهد.
<USERNAME>
یک رشته به طول حداقل ۱ و حداکثر ۲۰ از حروف کوچک و بزرگ انگلیسی و ارقام است.<AMOUNT>
یک عدد طبیعی کوچکتر یا مساوی ۱۰۰۰ است.<TIMESTAMP>
یک رشته به فرمت yyyy/mm/dd
است که زمان این اتفاق را نشان میدهد.اگر شخصی با نام <USERNAME>
در این سامانه وجود ندارد پیام INVALID USERNAME
و در غیر این صورت پیام ADD BALANCE DONE
را چاپ کنید.
مثالی از این درخواست در ورودی:
GET_BALANCE
در این درخواست فردی با نام <USERNAME>
اعتبار حساب خود در این سامانه را در لحظه <TIMESTAMP>
میپرسد.
<USERNAME>
یک رشته به طول حداقل ۱ و حداکثر ۲۰ از حروف کوچک و بزرگ انگلیسی و ارقام است.<TIMESTAMP>
یک رشته به فرمت yyyy/mm/dd
است که زمان این اتفاق را نشان میدهد.مثالی از این درخواست:
اگر شخصی با نام <USERNAME>
در این سامانه وجود ندارد پیام INVALID USERNAME
و در غیر این صورت مقدار اعتبار حساب این شخص را چاپ کنید.
GET_PENALTY
در این درخواست مقدار جریمههای <USERNAME>
در لحظه <TIMESTAMP>
را چاپ کنید.
<USERNAME>
یک رشته به طول حداقل ۱ و حداکثر ۲۰ از حروف کوچک و بزرگ انگلیسی و ارقام است.<TIMESTAMP>
یک رشته به فرمت yyyy/mm/dd
است که زمان این اتفاق را نشان میدهد.اگر شخصی با نام <USERNAME>
در این سامانه وجود ندارد پیام INVALID USERNAME
و در غیر این صورت مقدار جریمهی این شخص را چاپ کنید.
مثالی از این درخواست:
GET_LICENSE_DEADLINE
در این درخواست اولین روز بعد از <TIMESTAMP>
که ماشین با پلاک <CAR_PLATE>
طرح ندارد را چاپ کنید. (این موضوع ربطی به زوج و فرد بودن پلاک ندارد.)
<CAR_PLATE>
یک رشته به طول دقیقاً ۱۰ از ارقام است. این رشته میتواند با صفر آغاز شود.<TIMESTAMP>
یک رشته به فرمت yyyy/mm/dd
است که زمان این اتفاق را نشان میدهد.اگر ماشینی با این شماره پلاک در سیستم ثبت نشده است پیام INVALID CAR PLATE
را چاپ کنید در غیر این صورت اولین روزی که بعد از روز<TIMESTAMP>
این ماشین طرح ندارد را به صورت yyyy/mm/dd
چاپ کنید.
توجه کنید اگر این ماشین تاکنون طرح نداشته است باید فردای <TIMESTAMP>
را چاپ کنید.
مثالی از این درخواست:
در هر سطر از ورودی یکی از درخواستها که در متن سوال آمده است را دریافت میکنید. تعداد درخواستها حداکثر ۳۰۰ است.
بعد از آخرین درخواست برای نشان دادن پایان درخواستها کلمه END
چاپ میشود.
تضمین میشود تمام TIMESTAMP
ها قابل قبول و متمایز و به ترتیب زمان صعودی باشد.
در هر سطر از خروجی پاسخ دستوری را که در ورودی دریافت کردهاید چاپ میکنید.
مانی که به تازگی تایپ دهانگشتی یاد گرفته است، سخت به دنبال این است که سرعت تایپ خودش را بالا ببرد! اما از آنجا که مانی همیشه میخواهد خاص باشد، تصمیم گرفت که به جای اینکه تمرین بیشتری کند، ساختار کیبورد خود را عوض کند!
کیبورد مانی به شکل یک جدول است که ستونهای آن از چپ به راست و همچنین سطرهای آن از بالا به پایین شمارهگذاری شدهاند. همچنین او کلمه در لیست تمرین خود دارد که قصد تایپ کردنشان را دارد. برای این کار، او میخواهد که ۳۰ کلیدی که بر روی کیبورد خود قرار دارد را در این جدول طوری بچیند که بیشترین سرعت تایپ را کسب کند.
مانی که برای اینکار، نیاز به معیاری برای مقایسهی بین کیبوردها داشت، تصمیم گرفت که به هر چینش از کلیدها، عددی را نسبت دهد. او ابتدا برای هر کلمه، امتیازی در نظر گرفت که آن را به صورت زیر تعریف کرد:
برای هر کلمهی به شکل که در آن نشاندهندهی حرف اُم در آن است، امتیاز آن کلمه برابر با مقدار زیر است: که در آن، تابع ، اختلاف شماره ستون دو حرف ورودی را بر میگرداند.
همچنین، او برای یک ترتیب از قرارگیری کلیدها در کیبورد نیز یک عدد در نظر میگیرد و آن را امتیاز کیبورد مینامد. این عدد برابر است با مجموع امتیاز کلمهی موجود در لیست تمرین.
مانی که تصمیم داشت کیبورد با بیشترین امتیاز را به دست آورد، از شما میخواهد که برای او، کیبوردی با بیشینه امتیاز را پیدا کنید. اما از آنجا که مانی میداند سؤال به اندازهی کافی سخت است، تصمیم گرفت که در ازای پیدا کردن کیبوردی با امتیاز بیشتر، نمرهی بیشتری به شما دهد! (در نتیجه در این سؤال به دنبال پیدا کردن کیبورد با بیشترین امتیاز نیستیم و هر چقدر راهحل شما، کیبورد با امتیاز بیشتری پیدا کند، امتیاز بیشتری از این سؤال دریافت خواهید کرد)
در خط اول ورودی عدد طبیعی آمده است و در خط بعدی و در هر خط یک کلمه آمده است که نشاندهندهی کلمههای موجود در لیست تمرین مانی است.
تضمین میشود طول هر کلمه از ۱۰ بیشتر نیست و همچنین تمام کلمهها، تنها شامل حروف کوچک انگلیسی و ارقام ۱ تا ۴ هستند.
در خط اول خروجی، ابتدا بیشترین امتیاز کیبورد را چاپ کنید و سپس در سه خط بعدی و در هر خط، ۱۰ کارکتر که با فاصله از هم جدا شدهاند چاپ کنید. این کارکترها نشاندهندهی کلیدهای کیبورد میباشند (برای درک بهتر نحوهی خروجی دادن، خروجیهای نمونه را مشاهده کنید).
در کیبورد خروجی، تمام حروف کوچک انگلیسی و همچنین ارقام ۱ تا ۴، باید دقیقاً یکبار ظاهر شوند.
اختلاف شمارهی ستون دو کاراکتر و و همچنین دو کاراکتر و برابر با ۹ است و در نتیجه پاسخ برابر با ۱۸ است. (توجه کنید که کیبورد چاپ شده، تنها یکی از پاسخهای ممکن است)