+ محدودیت زمان: ۱۰ ثانیه (برای تمامی زبانهای برنامهنویسی)
+ محدودیت حافظه: ۵۱۲ مگابایت (برای تمامی زبانهای برنامهنویسی)
----------
یک گراف ساده (گرافی بدون جهت و بدون وزن و بدون یال چندگانه و بدون طوقه) به شما داده میشود. شما باید کمترین تعداد یال ممکن را از گراف حذف کنید و کمترین تعداد یال ممکن را به گراف اضافه کنید، تا این گراف تبدیل به یک درخت (گراف همبند بدون دور) بشود.
رئوس گراف با اعداد طبیعی از $1$ تا $n$ شمارهگذاری شدهاند.
# ورودی
در اولین خط ورودی دو عدد $n$ و $m$ با یک فاصله بینشان آمدهاست که به ترتیب تعداد رئوس و یالهای گراف را نشان میدهد.
$$1 \leq n \leq 2000$$
$$0 \leq m \leq \frac{n(n - 1)}{2}$$
در ادامه $m$ خط در ورودی آمدهاست.
در $i$امین خط از $m$ خط بعدی، دو عدد طبیعی $x_i$ و $y_i$ نابرابر با یک فاصله بینشان آمدهاست که نشان میدهد یال $(x_i, y_i)$ در گراف وجود دارد.
به ازای هر $i$ معتبر داریم:
$$ 1 \leq x_i, y_i \leq n $$
$$ x_i \neq y_i $$
# خروجی
در اولین خط، اول $a$ (تعداد یالهای لازم برای حذف شدن از گراف) و سپس $b$ (تعداد یالهای لازم برای اضافه شدن به گراف) را با یک فاصله چاپ کنید.
در هر یک از $a$ خط بعدی، شمارهی رئوس دو سر هر یالی که لازم است از گراف حذف شود را با یک فاصله چاپ کنید.
سپس در هر یک از $b$ خط بعدی، شمارهی رئوس دو سر هر یالی که لازم است به گراف اضافه شود را با یک فاصله چاپ کنید.
# مثال
## ورودی نمونه ۱
```
3 2
1 2
2 3
```
## خروجی نمونه ۱
```
0 0
```
## ورودی نمونه ۲
```
3 3
1 2
2 3
3 1
```
## خروجی نمونه ۲
```
1 0
1 3
```
## ورودی نمونه ۳
```
4 0
```
## خروجی نمونه ۳
```
0 3
1 2
2 3
3 4
```
## نکات
+ هر جواب دلخواهی که گراف ورودی را تبدیل به یک درخت بکند معتبر خواهد بود، ترتیب چاپ کردن یالهای خروجی مهم نیست، فقط دقت کنید که مقدار $a+b$ باید کمینه باشد، یعنی مجموع تعداد یالهای حذفشده و یالهای اضافهشده باید کمینه باشد.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.