روز
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
روز
ساعت
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
ساعت
دقیقه
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
دقیقه
ثانیه
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
ثانیه
  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

اگر p1,p2,,pn p_1,p_2, \cdots ,p_n جایگشتی از اعداد 11 تا nn‌ باشد، جایگشت p2p^2 که آن را ابرجایگشت pp می‌نامیم، یک جایگشت n2n^2 تایی است که به صورت زیر تعریف می‌شود:‌

دنباله‌ی qiq_{i} را برابر با p1+(i1)×n,p2+(i1)×n,,pn+(i1)×n p_1 + (i-1) \times n, p_2 + (i-1) \times n , \cdots , p_n + (i-1) \times n

تعریف می‌کنیم، حال جایگشت p2p^2 برابر است با:‌

qp1,qp2,...,qpn q_{p_1} , q_{p_2} , ... , q_{p_n}

برای مثال ابرجایگشت 2 3 1 برابر است با 5 6 4 8 9 7 2 3 1.

برنامه‌ای بنویسید که اندازه‌ی دور‌های گراف‌جایگشت p2p^2 را به عنوان ورودی بگیرد، یک جایگشت nn تایی مانند pp که p2p^2 آن مانند ورودی باشد را پیدا کند و تعداد جایگشت‌های nn تایی مانند pp که گراف‌جایگشت p2p^2 آن‌ها به این شکل است را در خروجی چاپ کند.

با توجه به این‌که این مقدار ممکن است بزرگ باشد، باقی‌مانده‌ی آن را بر 109+710^9 + 7 محاسبه کنید.

با تشکر از آقای مهندس و خانم دکتر!

ورودی

سطر اول ورودی شامل دو عدد طبیعی mm و nn است.

در هر یک از mm سطر بعدی به ترتیب دو عدد cic_i و lil_i آمده است که به معنای وجود cic_i دور به طول lil_i در گراف‌جایگشت p2p^2 است.

تضمین می‌شود که اندازه‌ی تمامی دور‌هایی که در سطر‌های دوم تا m+1m+1 آمده‌اند متمایز است.

تضمین می‌شود که c1l1+c2l2+...+cmlm=n2c_1l_1 + c_2l_2 + ... + c_ml_m = n^2 و حداقل یک جایگشت با چنین ابرجایگشتی وجود دارد.

1n,m200 0001\le n,m\le 200\ 000

1li,cin21\leq l_i , c_i \leq n^{2}

خروجی

در ابتدای خروجی گراف‌جایگشت یکی از جایگشت‌های pp که p2p^2 جایگشت داده‌شده در ورودی باشد را به همان فرمت ورودی چاپ کنید. در اولین سطر عدد mm و در mm سطر بعدی در هر سطر دو عدد cic_i و lil_i را چاپ کنید که نشان می‌دهد گراف‌جایگشت pp، به تعداد cic_i تا دور به طول lil_i دارد. دقت کنید که c1l1+c2l2+...+cmlmc_1l_1 + c_2l_2 + ... + c_ml_m باید برابر nn باشد و دنباله‌ی lil_iها باید اکیداً صعودی باشد. در صورت وجود چندین جواب هر کدام از آن‌ها را می‌توانید چاپ کنید.

در سطر آخر خروجی با‌قی‌مانده‌ی تعداد جایگشت‌هایی که گراف ابر جایگشت‌ آن‌ها مطابق ورودی است را بر 109+710^9 + 7 چاپ کنید.

زیرمسئله‌ها

زیرمسئله نمره محدودیت
۱ ۱۰ n8 n \le 8
۲ ۱۰ m=1 m = 1
۳ ۴۰ n,m2 000 n,m \le 2\ 000
۴ ۴۰ بدون محدودیت اضافی

مثال

ورودی نمونه ۱

2 3
1 1
4 2
Plain text

خروجی نمونه ۱

2
1 1
1 2
3
Plain text

ورودی نمونه ۲

1 4
4 4
Plain text

خروجی نمونه ۲

1
1 4
6
Plain text

ورودی نمونه ۳

5 9
2 2
3 3
8 4
2 6
2 12
Plain text

خروجی نمونه ۳

3
1 2
1 3
1 4
15120
Plain text

(۲۴امین دوره‌ المپیاد کامپیوتر - آزمون ششم - ۱۳۹۳/۰۶/۱۷)


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.