کارآگاه آرین و قفل مرگبار
متن مسئله
بعد از هفتهها تعقیب و تحقیق، کارآگاه مشهور، آرین، بالاخره تلفن همراه قاتل سریالی را پیدا کرد.
اما فقط یک مشکل باقی مانده است...
گوشی با یک قفل الگویی (Pattern Lock) محافظت میشود؛ همان الگویی که با کشیدن انگشت روی صفحه رسم میشود و عددی تایپ نمیشود.
اعداد روی تصویر فقط برای مشخص کردن جایگاه نقاط هستند.
آرین با استفاده از دستگاه تحلیل اثر انگشت متوجه شده بعضی از نقاط صفحه حتماً در الگو لمس شدهاند.
حالا او باید قبل از پاک شدن اطلاعات گوشی، تعداد تمام الگوهای ممکن را پیدا کند.
صفحهی قفل به شکل زیر است:
1 2 3
4 5 6
7 8 9
قوانین الگو:
- هر عدد حداکثر یک بار میتواند در الگو ظاهر شود.
- ترتیب لمس اعداد مهم است.
- هنگام حرکت بین دو عدد، ممکن است دقیقا یک عدد در وسط مسیر آنها قرار داشته باشد.
- اگر آن عددِ وسط قبلاً در الگو دیده شده باشد، حرکت مستقیم مجاز است.
- در غیر این صورت، آن عدد نیز هنگام حرکت لمس شده و به الگو اضافه میشود.
مثالها:
- بین
1و3عدد2در وسط قرار دارد. - بین
1و9عدد5در وسط قرار دارد. - بین
1و7عدد4در وسط قرار دارد.
برای مثال، در حرکت 1 → 3:
- اگر
2قبلاً دیده شده باشد، فقط3لمس میشود. - وگرنه مسیر از روی
2عبور کرده و2نیز به الگو اضافه میشود.
به آرین کمک کنید تعداد الگوهای معتبری را پیدا کند که تمام اعداد دادهشده را حداقل یک بار لمس کنند.
قالب ورودی و خروجی
ساختار ورودی
ساختار خروجی
نمونههای ورودی و خروجی
3
1 2 3
4
ارسال پاسخ
کد را در ویرایشگر بنویسید یا بچسبانید، زبان را انتخاب کنید و ارسال کنید؛ یا در صورت تمایل همان فایل را آپلود کنید. فرمتها: py، cpp، java، kt (حداکثر ۱۰ مگابایت).