سوال ها لزوما به ترتيب سختی مرتب نشده اند.
دو گراف راسی به شما داده شده است که راسهای آنها از تا شمارهگذاری شده اند. در هر مرحله میتوان یالهای متصل به یک راس در گراف اول را یک بار به صورت ساعتگرد یا پادساعتگرد چرخاند.
عمل چرخاندن یک راس مانند به این شکل انجام میشود که در ازای هر یال از به در گراف، یک یال جدید از به قرار داده میشود و تمامی یالهای قدیمی راس پاک میشود.
برای حرکت چرخاندن ساعتگرد، تابع به شکل زیر تعریف میشود:
برای چرخاندن پادساعتگرد نیز تابع به طور مشابهی ساخته میشود:
منظور از عملگر جمع دوری است که به شکل زیر تعریف می شود:
هدف تبدیل گراف اول به گراف دوم در تعدادی حرکت است. آیا این کار امکان پذیر است؟
در خط اول ورودی عدد طبیعی ، تعداد راسهای گرافها آمده است. در خط بعدی از ورودی در هر خط یک رشتهی حرفی از 0 و 1 آمده است که ماتریس مجاورت گراف اول را نشان میدهد و 1 بودن حرف ام خط ام وجود یک یال از به در گراف اول را نشان میدهد. در خط بعدی به حالت مشابه ماتریس مجاورت گراف دوم آمده است. تضمین میشود ماتریسهای ورودی متقارن هستند و درایههای روی قطرشان برابر با صفر است.
در صورتی که نمیتوان گراف اول را به گراف دوم تبدیل کرد در یک خط عبارت impossible
را چاپ کنید.
در غیر اینصورت ابتدا تعداد حرکات لازم برای تبدیل گراف اول به گراف دوم را چاپ کنید و در خطوط بعدی حرکات را به شکل - v
یا + v
چاپ کنید. - v
یک چرخاندن ساعتگرد بر روی راس و + v
یک چرخاندن پادساعتگرد بر روی راس را نشان میدهد. دقت کنید لزومی ندارد که تعداد حرکات مینیمم باشد و جواب شما اگر کمتر از حرکت داشته باشد قابل قبول است.
زیرمسئله | نمره | محدودیت |
---|---|---|
۱ | ۱۱ | |
۲ | ۱۱ | تضمین میشود درجه هر راس در گرافها دقیقاً یک است. |
۳ | ۲۲ | تضمین میشود گرافها درخت هستند. |
۴ | ۵۶ | بدون محدودیت اضافی |