امین همه چیز را نصفه و نیمه میگوید. وقتی از او میپرسند اصل لانه کبوتری چیست میگوید: «اگر کبوتر داشته باشیم، هر طوری آنها در لانه بنشینند، حتماً لانهای با بیش از یک کبوتر وجود دارد.» محمدپارسا میگوید این حرف همیشه درست نیست.
به شما دو عدد صحیح و داده میشود. از شما میخواهیم بررسی کنید آیا به ازای این مقدار و گزارهی امین درست است یا نه.
در سطر اول به ترتیب تعداد کبوترها و سپس تعداد لانهها میآیند.
اگر گزاره امین برای ورودی درست بود Yes
وگرنه No
را خروجی دهید.
به بزرگی و کوچکی حروف توجه نمایید.
در این نمونه، ۲ کبوتر و ۶ لانه وجود دارد. کافیاست کبوترها مانند شکل زیر در لانهها بنشینند و هیچ لانهای بیش از یک کبوتر نداشته باشد و گزارهی امین نادرست شود.
در این نمونه، ۴ کبوتر و ۳ لانه وجود دارد، هر طوری که کبوترها در این لانهها بنشینند، حداقل یک لانه وجود دارد که در آن بیش از یک کبوتر باشد و گزارهی امین درست میشود.
هر سطر از شکل بالای یکی از وضعیتهای ممکن برای قرار گرفتن کبوترها در لانهها را نشان میدهد. (تمام وضعیتها مشابه یکی از ۴ حالت بالا است.) و در همهی حالات یک لانه با بیش از یک کبوتر پیدا میشود.
یک مار در یک جدول نشسته است. مهرههای کمر این مار را میتوان با اعداد (سر) تا (دم) به ترتیب شمارهگذاری کرد.
سر این مار در خانهی بالا سمت چپ جدول قرار دارد و به صورت شکل زیر تمام بدن خود را در جدول قرار داده طوری که هر مهرهی کمر آن در دقیقاً یکی از خانهها قرار گرفته است.
برای بهتر متوجه شدن الگو، به مثالها مراجعه کنید.
از شما میخواهیم برنامهای بنویسید که با دریافت دو عدد و مشخص کند که در هر کدام از خانههای جدول، کدام مهرهی مار قرار گرفته است.
در تنها سطر ورودی، دو عدد صحیح و مثبت و که با یک فاصله از هم جدا شدهاند، آمده است.
خروجی سطر دارد و در هر سطر عدد آمده که با فاصله از هم جدا شدهاند، عدد نوشته شده در سطر ام ستون ام نشان دهندهی شمارهی مهرهای از کمر مار است که در آن خانه قرار میگیرد.
یک ربات داریم که در مبدا مختصات قرار دارد! هر بار ربات یک دستور میخواند و یک واحد بر روی صفحه مختصات دوبعدی طبق آن حرکت میکند. ۴ دستور ما «بالا»، «پایین»، «چپ» و «راست» هستند.
حال به شما تعدادی دستور داده میشود و شما باید همه آنها را به ربات بدهید. اما میتوانید حداکثر عملیات انجام دهید. در یک عملیات میتوانید یکی از دستورها را به یک دستور دیگر تبدیل کنید به شرطی که جهت مخالف دستور فعلی نباشد.
به عبارت دیگر در یک عملیات نمیتوانیم «بالا» و «پایین» را به هم و «چپ» و «راست» تبدیل کرد ولی بقیه تبدیلها مجاز هستند. توجه کنید یک دستور را به تعداد دلخواه میتوانید تغییر دهید.
برای مثال اگر دو دستور «بالا» + «چپ» را داشته باشیم. میتوانیم با یک عملیات آن را به «چپ» + «چپ» یا «راست» + «چپ» یا «بالا» + «بالا» یا «بالا» + «پایین» تبدیل کرد اما نمیتوانیم آن را به «پایین» + «چپ» یا «بالا» + «راست» تبدیل کرد.
حال میخواهیم بدانیم به ازای سناریوهای مختلف و مستقل هربار ربات حداکثر چه مقدار میتواند از مبدا دور شود!
در سطر اول ورودی یا تعداد سناریوهای مختلف میآید.
در خط بعد در هر خط ۵ عدد طبیعی میآید. عدد اول نشانگر تعداد دستورهای راست، عدد دوم تعداد دستورهای بالا، عدد سوم تعداد دستورهای چپ و عدد چهارم تعداد دستورهای پایین است. عددد آخر هم حداکثر تعداد تغییرهای مجاز را نشان میدهد.
در سطر خروجی در هر سطر یک عدد صحیح برابر با مجذور بیشینه فاصله ممکن ربات تا مبدا را خروجی دهید.
در مثال اول در ابتدا یک «راست» و یک «چپ» داریم که اگر با یک تغییر «چپ» را به «بالا» عوض کنیم آنگاه یک «راست» و یک «بالا» خواهیم داشت و مجذور فاصله ما ۲ خواهد بود. با توجه به اینکه مستقیماً نمیتوان «چپ» را تبدیل به «راست» کرد به فاصله دورتری از مبدا با یک عملیات نمیتوان رسید.
در مثال دوم اگر با دو عملیات دو «بالا» را به دو «چپ» تبدیل کنیم آنگاه ۴ «پایین»، ۵ «چپ» و ۱ «راست» خواهیم داشت. پس ربات در نقطه قرار خواهد گرفت و مجذور فاصله آن ۳۲ خواهد بود.
در مثال سوم اگر با ۴ عملیات هر ۴ «چپ» را به ۴ «پایین» تبدیل کنیم آنگاه ربات در نقطه با مجذور فاصله ۴۱ از مبدا قرار خواهد گرفت.
در مثال چهارم اگر با دو عملیات تنها «بالا» را به «پایین» تبدیل کنیم (یکبار «بالا» را به «راست» و بار دیگر «راست» را به «پایین») و با یک عملیات دیگر تنها «چپ» را به «پایین» تبدیل کنیم, آنگاه ۷ «پایین» و ۴ «راست» خواهیم داشت و فاصله ما از مبدا خواهد بود.
مارکوپولو قصد دیدن دور دنیا در ۸۰ روز را دارد. بنابرین هیچ گاه دوست ندارد شهری را بیشاز یکبار ببیند! به طور دقیقتر هر کشوری که مارکوپولو به آن سفر میکند قابل نمایش به صورت جدولی است به طوری که خانههای جدول شهرهای کشور هستند.
سفر مارکو از بالاترین چپترین شهر شروع و به پایینترین راستترین شهر ختم میشود و او پس از اینکه شهری را کامل دید میتواند به یکی از شهرهای مجاور که قبلاً ندیدهاست سفر کند. به دو شهر مجاور میگوییم اگر خانه متناظر آنها در جدول در یک ضلع مجاور باشد.
دیدن هر شهر یک ارزشی دارد و میزان رضایتمندی مارکو از سفر برابر جمع ارزش شهرهای دیدهشده در سفر است. به مارکو بگویید حداکثر رضایتمندیاش از هر سفر چهقدر حداکثر میتواند باشد.
در سطر اول ورودی تعداد کشورهای مورد گردش مارکو است. سپس اطلاعات کشور میآید.
در سطر اول اطلاعات یک کشور به ترتیب تعداد سطرها و تعداد ستونهای جدول متناظر کشور میآید.
سپس در سطر در هر سطر عدد میآید که امین عدد (از سمت چپ) از سطر ام برابر ارزش شهر متناظر با خانه سطر و ستون است. ( ارزش مبدا و ارزش مقصد را نشان میدهد.)
تضمین میشود که مجموع برای تمام کشورهای مورد گردش مارکو از ۱۰۰۰،۰۰۰ بیشتر نمیشود. یعنی:
در سطر در هر سطر بیشینه رضایتمندی ممکن برای مارکو از سفر را خروجی دهید. توجه کنید مارکو از شهر مبدا و مقصد هم کاملاً دیدن میکند.
در مثال اول کشور به شکل زیر است:
دو مسیر زیر بیشتر وجود ندارد:
که حداکثر رضایتمندی برابر است.
در مثال دوم کشور به شکل زیر است:
و مسیر با حداکثر رضایتمندی از مسیر زیر برابر میشود.
باباشلهپز قصد دارد قصر یشم را به آشفروشی تبدیل کند! از آنجا که قصر یشم حدود هزار پله دارد او میخواهد تا جای ممکن بار کمتری را بر دوش پسرش پو بیندازد. بنابرین تصمیم به فشردهسازی آشهای خود میگیرید.
هر آش از تعدادی رشته تشکیل شدهاست و هر رشته نیز دنبالهای از حروف کوچک انگلیسی است. حال رشته را میتوان به انتهای رشته وصل کرد اگر حرف آخر برابر با حرف اول باشد. توجه کنید طول رشته حاصل از اضافه کردن به یکی کمتر از طول مجموعه آنها قبل از اتصال است. مثلاً میتوانیم amazing
را به quera
اضافه کنیم تا queramazing
بهدست آید.
طول هر رشته برابر تعداد حروف آن و طول هر آش برابر مجموع طول رشتههای آن است. پو از شما کمک میخواهد.
در سطر اول یا تعداد آشها میآید. سپس در خطوط بعد اطلاعات آش داده میشود.
در سطر اول آش ام یا تعداد رشتههای آش ام میآید.
سپس در سطر ام از سطر بعد رشته ام آش ام میآید.
در خط کمینه اندازه هر آش پس از فشردهسازی را به ترتیب خروجی دهید.
در آش اول میتوان oogvey
را به انتها shifoo
اضافه کرد تا به shifooogvey
با طول ۱۱ رسید. راه دیگری برای اتصال آنها نیست و اگر دو رشته از هم جدا باشند هم مجموع طولشان ۱۲ است.
در آش سوم میتوان ابتدا abc
را به انتهای a
اضافه کرد تا abc
بدست آید و سپس cba
را به انتها abc
اضافه کرد تا abcba
به طول ۵ بدست آید. میتوان نشان داد آشی با طول کمتر نمیتوان ساخت.
خواجه فرزان به تازگی به خزپارتی در شکرستان دعوت شده! او باید تیپی خز برای مهمانی بزند. به یک تیپ شامل «کلاه»، «تیشرت» و «شلوار» خز میگوییم اگر رنگ آنها دوبهدو متفاوت باشد. به خواجه بگویید چند تیپ ممکن میتواند بزند.
در سطر اول ورودی تعداد پوشاک خواجه میآید.
در سطر ام از سطر بعد در هر سطر دو عدد میآید که اطلاعات یکی از پوشاک خواجه فرزان را مشخص میکند. عدد اول نوع را مشخص میکند (اعداد ۱ و ۲ و ۳ را به ترتیب برای کلاه و تیشرت و شلوار فرض کنید.) و عدد دوم رنگ لباس را مشخص میکند.
در تنها سطر خروجی تعداد تیپهای خز ممکن با توجه به کمد لباس خواجه فرزان را خروجی دهید.
نمره | محدودیت |
---|---|
۵۰ | |
۵۰ | بدون محدودیت اضافی |
در مثال اول در همه حالات کلاه و شلوار همرنگ هستند و هیچ تیپی خز به شمار نمیآید.
در مثال دوم از ۳ رنگ هر ۳ نوع را داریم. پس طبق اصل ضرب برای کلاه ۳ حالت و برای تیشرت ۲ حالت و برای شلوار ۱ حالت داریم و پاسخ حاصل ضرب آنها یعنی ۶ است.