الگوریتمی - اقدامات اساسی


  • محدودیت زمان: ۲ ثانیه
  • محدودیت حافظه: ۵۰ مگابایت
  • سوال الگوریتمی

در پی اوج‌گرفتن ‌شیوع یک بیماری در سرزمینی دورافتاده، مسئولین به فکر یک‌طرفه‌کردن جاده‌ها افتاده‌اند! با این که این کار به نظر تأثیری در وضعیت شیوع بیماری ندارد، آن‌ها اصرار بر انجام این امر دارند. حالا از شما خواسته شده با دریافت اطلاعات شهرها و مسیرهای دوطرفۀ بین آن‌ها، بررسی کنید که آیا می‌شود مسیرها را یک‌طرفه کرد به گونه‌ای که از هر شهری بتوانیم به تمامِ شهرهای دیگر برویم یا خیر.

دقت کنید که با توجه به دو‌طرفه‌بودنِ مسیرها، تمام شهرها به صورت مستقیم یا با واسطه به یکدیگر راه دارند‌ (به عبارت دیگر، یک گراف سادۀ همبند را تشکیل می‌دهند).

برای سهولت نام شهرها داده نمی‌شود و nn شهر با عدد 11 تا nn مشخص می‌شوند.

ورودی🔗

در خط اول ورودی به ترتیب nn و mm که تعداد شهرها و مسیرها هستند می‌آید. 0<n100 0000 < n \le 100\ 000 0<m300 0000 < m \le 300\ 000 در هر یک از mm خط بعدی یک مسیر داده می‌شود. هر مسیر با دو عدد که توسط فاصله (Space) از یکدیگر جدا شده‌اند مشخص می‌شود.

به عنوان مثال خط زیر مسیری بین دو شهر 2020 و 2828 را مشخص می‌کند (بدیهی است که در این مثال nn بزرگ‌تر یا مساوی 2828 است):

28 20
Plain text

خروجی🔗

اگر با یک‌طرفه‌کردن تمام مسیرها بتوان از هر شهری به تمامی شهرهای دیگر سفر کرد، در خروجی عبارت EYVAL چاپ شود و در ادامه یک مثال از نحوۀ جهت‌دهی مسیرها آورده شود؛ در غیر این صورت، در خروجی عبارت BIKHIAL را چاپ کنید.

دقت کنید که در مثال ارائه‌شده، هر مسیر را در یک خط و با دو عدد نشان دهید که اولین عدد مبدأ و دومین عدد مقصد است. به عنوان مثال خط زیر مسیری یک‌طرفه از شهر 1111 به شهر 134134 را نشان می‌دهد:

11 134
Plain text

مثال🔗

ورودی نمونه ۱🔗

6 8
1 2
2 3
1 3
4 5
4 6
5 6
2 4
3 5
Plain text

خروجی نمونه ۱🔗

EYVAL
2 1
3 2
1 3
5 4
6 4
5 6
4 2
3 5
Plain text
توضیحات نمونه‌ ۱

ورودی داده شده مانند شکل زیر است: ورودی ورودی را می‌توان به شکل زیر جهت‌دار کرد: خروجی

ورودی نمونه ۲🔗

6 7
1 2
2 3
1 3
4 5
4 6
5 6
2 4
Plain text

خروجی نمونه ۲🔗

BIKHIAL
Plain text
توضیحات نمونه‌ ۲

ورودی داده شده مانند شکل زیر است که به هیچ طریقی نمی‌تواند مطلوبات مسئله را برآورده کند. ورودی