- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
فرض کنید \(G\) یک گراف ساده \(n\) راسی \(m\) یالی است که راسهای آن از \(1\) تا \(n\) شماره گذاری شده است.
به یک گراف «اویلری» میگوییم اگر «گذری» داشته باشد که هر یال \(G\)، دقیقا یکبار در آن آمده باشد.
منظور از یک گذر، دنبالهای از یالها مثل \(e_1, e_2, \dots, e_k \,\) است که به ازای هر \(2 \leq i \leq k\) داشته باشیم \(e_{i - 1} \cap e_i \neq \emptyset\,\).
یک گراف به شما داده میشود، و از شما میخواهیم بررسی کنید آیا این گراف اویلری است یا نه.
ورودی
در سطر اول ورودی دو عدد صحیح \(n\) و \(m\) که با یک فاصله از هم جدا شدهاند آمده است که به ترتیب نشاندهندهی تعداد راسها و یالهای گراف \(G\) است.
\[1 \leq n \leq 100 \, 000\] \[0 \leq m \leq \min\{\frac{n(n - 1)}{2},100 \, 000\}\]
در \(m\) سطر بعدی دو عدد \(u_i\) و \(v_i\) که با یک فاصله از هم جدا شدهاند آمده است که نشاندهندهی وجود یال \(u_i v_i\) در گراف \(G\) است.
\[1 \leq u_i \neq v_i \leq n\]
تضمین میشود گراف داده شده ساده است. یعنی بین هر دو راس حداکثر یک یال آمده است.
خروجی
در تنها سطر خروجی در صورت اویلری بودن گراف \(G\) رشته YES و در غیر این صورت رشته NO چاپ کنید.
مثال
ورودی نمونه ۱
3 3
1 2
1 3
2 3
خروجی نمونه ۱
YES
بله، چون دنباله زیر وجود دارد: \[\{1, 2\}, \{2, 3\}, \{1, 3\}\]
ورودی نمونه ۲
4 2
1 2
3 4
خروجی نمونه ۲
NO
خیر، چون هر این گراف تنها دو یال دارد که هیچ اشتراکی ندارند. پس نمیتوان دنبالهای ساخت که هر دو یال در آن حضور داشته باشند و هر دو یال متوالی اشتراکی ناتهی داشته باشند.
ورودی نمونه ۳
5 5
1 2
2 3
3 4
4 5
5 3
خروجی نمونه ۳
YES
بله، چون دنباله زیر وجود دارد: \[\{1, 2\} \{2, 3\}, \{3, 4\}, \{4, 5\}, \{3, 5\}\]
ارسال پاسخ برای این سؤال