المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۱۳:عملی:سوال ۱۴

آقای «ح» و یخچال

آقای «ح»، به مناسبت ازدواجش، خانه خریده است و مشغول چیدن وسائل در آن می‌باشد. در یک اطاق از خانه‌اش قرار است یک یخچال باشد. آقای «ح» با کمک دوستانش، یخچال را در مکان دلخواه خودش قرار داد. اما متاسفانه همسرش این مکان را نپسندید، پس او باید یخچال را در مکانی که همسرش مشخص کرده نصب کند! در ضمن، دوستان آقای «ح» رفتند خانه‌هایشان و لذا آقای «ح» می‌خواهد به تنهایی یخچال را با حول دادن به مقصد برساند!

اطاق به شکل یک مستطیل $m\times n$ می‌باشد. قوانین حرکت بدین صورت هستند:

  • آقای «ح» در هر حرکت می‌تواند یک خانه به سمت بالا، پایین، راست و چپ برود.
  • اگر یخچال در خانه‌ای که آقای «ح» می‌خواهد به آن برود، آقای «ح» یخچال را به همان جهتی که دارد حرکت می‌کند به اندازه‌ی یک خانه حول می‌دهد. مثلا اگر آقای «ح» در خانه‌ی $(4,6)$ باشد و یخچال در $(4,7)$ باشد و آقای «ح» به طرف $(4,7)$ حرکت کند، در آخر حرکت آقای «ح» در $(4,7)$ خواهد بود و یخچال در $(4,8)$ خواهد بود.
  • آقای «ح» و یخچال نمی‌توانند وارد دیوار شوند! پس حرکتی که باعث شود آقای «ح» یا یخچال وارد دیوار شود، مجاز نمی‌باشد.

از آن‌جا که آقای «ح» تنها است و یخچال سنگین، او می‌خواهد تعداد حرکت‌هایی که انجام می‌دهد مینیمم باشد. حرکت معمولی و حول دادن، هر کدام یک حرکت محسوب می‌شوند. به عبارت دیگر، تعداد حرکت‌ها برابر است با تعداد دفعاتی که آقای «ح» حرکت می‌کند.

ورودی

در سطر اول فایل ورودی به ترتیب $m$ و $n$ آمده‌اند، که ابعاد اطاق را مشخص می‌کنند. سپس در $m$ سطر بعد، در هر سطر $n$ حرف(بدون هیچ نوع فاصله) آمده است. هر حرف وضعیت اولیه‌ی یک خانه را مشخص می‌کند، به صورت زیر:

  • . (نقطه) به معنای یک خانه‌ی خالی است.
  • # به معنای دیوار است.
  • $H$ به معنای آقای «ح» است.
  • $Y$ به معنای یخچال است.
  • $M$ به معنای مقصد یخچال است.

تمام خانه‌های روی حاشیه‌ی اطاق دیوار هستند.(به عبارت دیگر، همه‌ی حروف سطر اول، سطر آخر، ستون اول و ستون آخر # هستند.) تمام حروف در فایل ورودی بزرگ هستند.

راهنمایی: به مقدار حافظه‌ای که استفاده می‌کنید توجه کنید. اگر مثلا یک آرایه‌ی $1000000$ تایی از نوع $Byte$ دارید و ‌می‌خواهید به جای $4000000$ یا $8000000$ بایت حافظه، $1000000$ بایت مصرف شود، می‌توانید به جای $Array$ از $Packed Array$ استفاده کنید.

خروجی

در صورتی که آقای «ح» بتواند یخچال را با شرط‌های فوق به مقصد برساند، شما باید در سطر اول این فایل نحوه‌ی حرکت آقای «ح» را بنویسید. در این سطر یک رشته از حروف $L،D،U$ و $R$ بنویسید، که این حرف به ترتیب به معنای بالا، پایین، چپ و راست می‌باشند. رشته باید از چپ به راست حرکت آقای «ح» در مسیر با طول مینیمم را مشخص کند. توجه کنید که در این سطر هیچ نوع فاصله نباید بنویسد. اگر بیش‌تر از یک راه وجود داشته باشد، یک راه‌حل بنویسید.

اگر مسئله راه‌حل نداشته باشد، در سطر اول فایل خروجی بنویسید:$No Solution$.

محدودیت‌ها

  • محدودیت زمان: ۳ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

ورودی و خروجی نمونه

ورودی نمونه خروجی نمونه
6 9
#########
#.###…#
#.Y…#.#
#.H#..#.#
#..M….#
#########
LURRRDRDRRUUULLDDUURRDDDLLL

ابزار صفحه