Час

07:52:08
25 May 2012
Версія для друку

Кольорові чарівники

Казкова країна являє собою множину міст, з'єднаних дорогами з двостороннім рухом. Причому з довільного міста країни можна дістатись в довільне інше місто або безпосердньо, або через інші міста. Відомо, що в казковій країні не існує доріг, що з'єднують місто саме з собою, та між довільними двома різними містами існує не більше однєї дороги.
В казковій країні живуть жовтий та синій чарівники. Жовтий чарівник, проходячи по дорозі, перефарбовує її в жовтий колір, синій — в синій. Як відомо, при накладанні жовтої фарби на синюю, або синьої фарби на жовту, фарби змішуються і перетворюються в фарбу зеленого кольору, яка є самим нелюбимим кольором обох чарівників.
В цьому році в столиці країни (місті F) проводиться конференція чарівників. Тому жовтий і синій чарівники хочуть взнати, яку мінімальну кількість доріг їм прийдеться перефарбувати в зелений колір, щоб дістатись в столицю. Спочатку всі дороги не пофарбовані.
Початкове положення жовтого та синього чарівників наперед не відомо. Тому потрібно розв'язати дану задачу для К можливих випадків їх початкових розміщень.


Технічні умови

Вхідні дані
Перший рядок вхідного файлу містить цілі числа: N (1N100000) та M (1M500000) — кількість міст та доріг в чарівній країні відповідно. Третій рядок містить одне ціле число F (1FN) — номер міста, що є столицею казкової країни. В наступних M рядках міститься опис доріг країни. В цих M рядках записано по два цілих числа Ai та Bi, які означають, що існує дорога, що з'єднує міста Ai и Bi. Наступний рядок містить ціле число K (1K100000) — кількість можливих початкових розміщень чарівників. Далі йде K рядків, кожен з яких містить два цілих числа— номери міст, в яких на початку знаходяться жовтий та синій чарівники відповідно.
Вихідні дані
Для кожного з K випадків ваша програма повинна вивести мінімальну кількість доріг, які прийдеться пофарбувати в зелений колір чарівникам для того, щоб дістатись в столицю.


Інформація про задачу

Ліміт часу: 2 секунди
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 1.6667
Складність: 33% 6/9

Приклад

Приклад вхідних даних

6 6
1
1 2
2 3
3 4
4 2
4 5
3 6
2
5 6
6 6

Приклад вихідних даних

1
2


← Маршрутки Список задач Склеювання →