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

یک گراف ساده و همبند \(n\) راسی و \(m\) یالی داریم. می‌خواهیم روی هر راس این گراف یک عدد از مجموعه \(\{ 1, 2, 3, \dots, k\}\) بنویسیم.

اگر عدد نوشته شده روی راس \(v\) را با \(a_v\) و طول کوتاه ترین مسیر بین دو راس \(u\) و \(v\) را با \(dist(u, v)\) نشان دهیم.

می‌خواهیم این عدد گذاری به گونه‌ای انجام شود که برای هر دو راس از این گراف مثل \(u\) و \(v\) داشته باشیم.

\[dist(u, v) = |a_u - a_v|\]

از شما می‌خواهیم تعداد روش‌های انجام این کار را مشخص کنید. از آن‌جایی که پاسخ مسئله می‌تواند خیلی بزرگ باشد باقی‌مانده پاسخ مسئله را بر \(10^9 + 7\) را چاپ کنید.

ورودی

خط اول ورودی به ترتیب سه عدد \(n\) و \(m\) و \(k\) با فاصله از هم آمده‌اند.

\[1 \le n \le 100\ 000\] \[n - 1 \leq m \leq min(\frac{n(n - 1)}{2},100 \, 000)\] \[1 \le k \le 10^9\]

در \(m\) خط بعدی و در هر خط دو عدد \(v\) و \(u\) با فاصله از هم آمده‌اند که نشان‌دهنده‌ی یالی بین دو رأس \(v\) و \(u\) هستند. \[1 \le v, u \le n\]

تضمین می‌شود گراف ورودی، گرافی ساده و همبند است.

خروجی

مثال

ورودی نمونه ۱

2 1 3
1 2

خروجی نمونه ۱

4

اگر عدد نوشته شده روی راس شماره \(v\) را با \(c(v)\) نشان دهیم؛ ۴ روش زیر برای این عدد گذاری وجود دارد.

  • \(c(1) = 1, c(2) = 2\)
  • \(c(1) = 2, c(2) = 1\)
  • \(c(1) = 3, c(2) = 2\)
  • \(c(1) = 2, c(2) = 3\)

ورودی نمونه ۲

3 3 2
1 2
2 3
3 1

خروجی نمونه ۲

0

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

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