در شهر کدکاپ، مارها بدنهای بسیار طولانی دارند و در تونلهایی به شکل جدول ۸ ۲ زندگی میکنند. یک مار کدکاپی مانند شکل زیر در خانهی پایین چپ این جدول قرار دارد به طوری که سر این مار به سمت انتهای تونل (سمت راست تصویر) است.
هر بار این مار یکی از ۳ حرکت زیر را انجام میشود:
F
: در همان سطری که هست به خانه روبهرو میرود.L
: در سطر سمت چپ خودش به خانه روبهرو میرود.R
: در سطر سمت راست خودش به خانه روبهرو میرود.اگر سر این مار به خانهای برود که در جدول وجود ندارد، محکم به دیوار میخورد و میمیرد.
به شما حرکتهای مار داده میشود، از شما میخواهیم وضعیت بدن مار را بعد از همهی آن حرکتها مشخص کنید یا بگویید که مار میمیرد. برای بهتر متوجه شدن سوال، به توضیحات نمونهها مراجعه کنید.
یک رشته به طول ۷ با کاراکترهای F
، L
یا R
که نشان دهندهی حرکت مار به مستقیم، چپ یا راست است.
دو رشته به طول ۸ شامل ۰ و ۱ که ۱ نشان دهندهی حضور مار در آن خانه و ۰ نشان دهندهی خالی بودن آن خانه باشد که در دو خط چاپ میشوند.
مسیر حرکت مار به صورت زیر است.
بعد از انجام آخرین حرکت، سر مار به دیوار میخورد و میمیرد. (چون در ستون پایینی است و نمیتواند پایینتر به راست برود.)
نیازی نیست چک کنید شرایط گفته شده در ورودی برقرار است یا نه. توضیحات محدودیتها فقط برای آگاهی شما دربارهی تستها و محدودیتهای مسئله است و قطعاً در ورودیهای داده شده به برنامهی شما رعایت میشوند. پس نیازی نیست بنویسید:
شما میتوانید لابهلای دریافت ورودی، خروجی دهید. پس نیازی نیست ابتدا همهی ورودیها را دریافت کنید و در نهایت همهی خروجیها را چاپ کنید. مخصوصاً برای سوالاتی که باید به چندین سوال پاسخ دهید، میتوانید دو قسمت ورودی و خروجی را کاملاً مستقل در نظر بگیرید و مطمئن باشید تداخلی پیش نمیآید.
لطفاً از چاپ کردن موارد اضافه مثل please enter a number
برای دریافت ورودی پرهیز کنید. برای مثال در زبان پایتون نباید بنویسید:
برای زبانهایی مثل جاوا نباید در بالای کد شما آدرس پکیج داده شود. برای مثال در بالای کد خود نباید بنویسید:
Scanner
برای دریافت ورودی
در زبان جاوا، باید فقط یک شئ از جنس Scanner
تعریف کنید و همهی ورودیها را با آن دریافت کنید.
برای آشنایی بیشتر برای نحوهی دریافت ورودی و چاپ کردن خروجی این لینک را مطالعه کنید.
در کشور کدکاپ قدیم شهر با شمارههای ۱ تا وجود داشته است. این کشور جاده دو طرفه داشت و هر جاده دقیقاً دو شهر را به هم متصل میکرد. میدانیم در کدکاپ قدیم از هر شهری به هر شهر دیگر یک مسیر وجود داشته است (در واقع نقشهی کشور کدکاپ به صورت یک درخت بوده است).
منظور از یک مسیر، دنبالهای از شهرهای مختلف مثل است؛ بهطوری که هر دو شهر متوالی با یک جاده به هم متصل شده باشد. طول این مسیر را مینامیم. منظور از بلندترین مسیر کشور، مسیری است که بین همهی مسیرهای ممکن، بلندترین طول دارد.
اما اکنون نقشهی کشور کدکاپ را از دست دادیم و برای هر شهر، تعداد جادههایی که از آن خارج شده را میدانیم. میخواهیم با توجه به این عددها در بین تمام نقشههای ممکن برای کدکاپ قدیم، نقشهای را در نظر بگیریم که طول بلندترین مسیر آن بیشینه است. از شما میخواهیم این طول را حساب کنید.
در اولین خط ورودی عدد که نشان دهنده تعداد شهرهای کدکاپ قدیم داده میشود.
سپس در خط بعد عدد با فاصله از هم داده می شوند که عدد ام یعنی نشان دهنده تعداد جادههای خارج شده از شهر است.
تضمین میشود از روی دنبالهی داده شده، حداقل یک نقشه برای کدکاپ قدیم میتوان ساخت.
شما باید در یک خط، طول بلندترین مسیر در نقشهی کدکاپ قدیم را چاپ کنید.
نقشهی کدکاپ قدیم میتواند به صورت زیر باشد، تا تعداد جادههای خارج شده از هر شهر دقیقاً برابر اعداد ورودی باشد. بلندترین مسیر آن است که طول آن ۴ است و این حداکثر مقدار ممکن است.
یکی از بلندترین مسیرهای آن است که طول آن ۵ است. و بین تمام حالتهای قابل قبول دیگر برای نقشهی کدکاپ قدیم، این مثال بیشترین طول را برای بلندترین مسیر دارد.
در شهر کدکاپآباد تنها یک خط مترو وجود دارد که هر روز تنها یک بار از ایستگاه ۱ شروع کرده و تا ایستگاه آخر میرود. ساکن این شهر هر روز صبح برای رفتن به سر کار از این خط مترو استفاده میکنند.
شهروند ام اول صبح میخواهد از ایستگاه به ایستگاه برود. قطار شهر کدکاپآباد بسیار قدیمی است و حداکثر نفر میتوانند سوار آن شوند. هر فرد میتواند در ایستگاه سوار قطار شود و در یکی از ایستگاههای ادامهی مسیر پیاده شود و باقی مسیر را پیاده برود.
اگر شهروند ام در ایستگاه از قطار پیاده شود باید واحد پیاده برود. زمان پیاده شدن هر شهروند از قطار طوری تعیین کنید که مجموع میزان پیاده روی شهروندان کمینه شود. (توجه کنید که میتواند برابر با باشد. یعنی شما میتوانید یکی از شهروندان را اصلاً سوار قطار نکنید.)
در سطر اول ورودی، دو عدد صحیح و مثبت و آمده است که نشان دهندهی شهروندان شهر کدکاپآباد و نشان دهندهی حداکثر تعداد مسافر سوار بر قطار است.
در هر کدام از سطر بعدی، در سطر ام و آمده است که نشان دهندهی مبدا و مقصد شهروند ام است.
کمینهی مجموع خستگی شهروندان را چاپ کنید.
به این ترتیب هر دو مسافرها در مقصدی که میخواهند پیاده میشوند. پس مجموع خستگیها میشود.
به این ترتیب مسافرهای ۱، ۳ و ۴ در مقصدی که میخواهند پیاده میشوند ولی مسافر ۲ اصلاً سوار نشده و باید پیاده به مقصدش برود و بهاندازهی خسته میشود. پس مجموع خستگیها میشود.
به این ترتیب مسافرهای ۱ و ۳ در مقصدی که میخواهند پیاده میشوند ولی مسافر ۴ اصلاً سوار نشده و باید پیاده به مقصدش برود و بهاندازهی خسته میشود. همچنین مسافر ۲ در ایستگاه ۴ پیاده شده ولی میخواست به ایستگاه ۷ برود و بهاندازهی خسته میشود.
پس مجموع خستگیها میشود.
میدان اصلی شهر کدکاپ بسیار بزرگ است. دور این میدان چراغ روشنایی قرار دارد. این چراغها را با اعداد ۱ تا به ترتیب ساعتگرد شمارهگذاری کردهاند.
میدانیم اگر یک چراغ روشن شود، محوطه زیر آن و دو چراغ مجاورش روشن میشود. به صورت رسمیتر اگر چراغ شمارهی را روشن کنیم، () محوطهی زیر چراغ ، و روشن میشود. (اگر از بیشتر شد بهجای آن ۱ و اگر از ۱ کمتر شد بهجای آن را در نظر بگیرید.)
میدانیم هزینهی روشن کردن شمارهی برابر است. میخواهیم با کمترین هزینه ممکن، تعدادی از چراغها را روشن کنیم به طوری که محوطهی زیر همهی چراغها روشن باشد.
در سطر اول عدد آمده که تعداد تستها را نشان میدهد.
در هر خط یک عدد و سپس در خط بعد عدد نشاندهندهی میزان هزینه برای روشن کردن هر چراغ را میگوییم.
تضمین میشود برای همهی تستها حداکثر باشد.
عدد نهایی نشان دهندهی کمترین هزینهای که تمام خیابانها روشن شود را چاپ کنید.
اگر چراغهای ۱ و ۳ را روشن کنیم. هزینهی پرداخت میکنیم. همچنین برای هر کدام از محوطهها حداقل یک چراغ مجاورش روشن شده است.
روشن کردن چراغ اول برای روشن کردن تمام محوطه کافی است و هزینهی روشن کردن آن است.
اگر چراغهای ۳ و ۵ را روشن کنیم. هزینهی پرداخت میکنیم. همچنین برای هر کدام از محوطهها حداقل یک چراغ مجاورش روشن شده است.
در این نمونه دقیقاً یک چراغ وجود دارد. پس باید آن را روشن کنیم تا محوطه روشن شود.
در این نمونه ۷ چراغ داریم که هزینهی روشن کردن آنها برابر است. برای روشن کردن کل محوطه به روشن کردن حداقل ۳ چراغ نیاز داریم. با روشن کردن ۱، ۴ و ۷ میتوانیم به این هدف برسیم. پس حداقل هزینهی روشن کردن کل میدان برابر است.
روی تخته عدد نوشته شده است. کاپیتان میخواهد با انجام تعدادی عملیات این عدد را به ۱ تبدیل کند. او در هر عملیات میتواند عدد نوشته شده روی تخته را با یکی از مقسومعلیههای طبیعی کوچکتر از آن عدد جایگزین کند.
از آنجایی که او میخواهد حداکثر استفاده را از تخته گچی بکند، باید طوری این کار را انجام دهد که تعداد عملیاتها حداکثر باشد.
به چند طریق میتواند این عملیاتها را انجام دهد به طوری که حداکثر تعداد مرحله را طی کند. دو روش را متقاوت در نظر بگیرید، اگر دنبالهی اعدادی که روی تخته نوشته میشود متفاوت باشد.
در تنها سطر ورودی، عدد صحیح و مثبت داده میشود.
باقیماندهی پاسخ مسئله بر را چاپ کنید.
تنها روش ممکن
است. بنابراین پاسخ ۱ میشود.
حداکثر طول ممکن ۳ است و ۲ روش وجود دارد. بنابراین پاسخ برابر ۲ است.
حداکثر طول ممکن ۴ است و ۳ روش وجود دارد. بنابراین پاسخ برابر ۳ است.
در یک شرکت برنامهنویسی، برنامهنویس مشغول به کار هستند. این برنامهنویسها با اعداد ۱ تا شمارهگذاری میشوند. سیستم مدیریتی این شرکت به صورت یک درخت است. یعنی هر برنامهنویس به جز برنامهنویس شمارهی ۱، یک مدیر دارد. مدیر برنامهنویس را با نشان میدهیم. در واقع ساختار این شرکت به صورت یک درخت ریشهدار است.
عید نوروز نزدیک است و این برنامهنویسها میخواهند از شرکت خارج شوند و برای سفر به شهر کدکاپ بروند. زمانی برنامهنویس شمارهی میتواند از شرکت خارج شود که هم از سازمان خارج شده باشد.
برای هر از ۱ تا حساب کنید چند زیرمجموعه عضوی از برنامهنویسها میتوانند از شرکت خارج شوند. چون ممکن است پاسخ خیلی بزرگ باشد، باقیماندهی آن را بر چاپ کنید.
در سطر اول ورودی، عدد صحیح و مثبت آمده که تعداد برنامهنویسهای شرکت را نشان میدهد.
در سطر دوم ورودی، عدد صحیح میآید.
خروجی سطر دارد و در سطر ام تعداد حالتهایی که نفر شرکت را ترک کنند محاسبه کنید.
مشابه نمونهی قبل مجموعه افرادی که میتوانند خارج شوند عبارت است از: