QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 2048 MB Total points: 100

#8686. Zarządzanie zoo

Statistics

Zarządzając zoo, czasami chcesz przenosić zwierzęta między wybiegami. Możesz uznać, że zebrom spodoba się przestronniejszy wybieg zajmowany obecnie przez pingwiny, a pingwiny zechcą przenieść się do chłodniejszego wybiegu, w którym mieszkają koale; koale zaś trafią na pusty wybieg, który można wypełnić eukaliptusem. Najpierw przeniesiesz więc koale, aby zwolnić chłodniejszy wybieg, następnie pingwiny do niego, a na końcu zebry.

Zwierzęta przenosisz specjalnymi tunelami łączącymi wybiegi — nie chcesz, by przemieszczały się na zewnątrz, zarówno ze względu na ryzyko, że się przestraszą, jak i że uciekną i zrobią sobie krzywdę.

problem_8686_a2a053ee36bb78fadb0dd8509481feee.png

Zdjęcie zoo z wielbłądem, osłem i (częścią) kozy.

Niestety, niedawno pozyskałeś więcej zwierząt i wszystkie wybiegi są teraz pełne, co znacznie utrudnia przenosiny. Wyobraź sobie na przykład, że koale miałyby trafić na dawny wybieg zebr — nie możesz przenieść żadnej grupy jako pierwszej. Zamiast tego nauczyłeś się przenosić zwierzęta jednocześnie: zebry, koale i pingwiny wchodzą do różnych tuneli w tym samym momencie i jednocześnie docierają na nowe wybiegi, dzięki czemu nigdy się nie spotykają. Zauważ, że nie można po prostu zamienić tak zwierząt z dwóch połączonych wybiegów (spotkałyby się w tunelu i przestraszyły).

Masz więc teraz zagadkę. Dysponujesz listą wybiegów, z których każdy zawiera jeden typ zwierzęcia; niektóre są połączone tunelami. Dowolną liczbę razy możesz wybrać pewien zbiór zwierząt i przenieść każde na wybieg sąsiadujący przez tunel, o ile zwierzę z tego wybiegu również zostanie przeniesione w ramach tego samego ruchu i żaden tunel nie będzie użyty w tym ruchu więcej niż raz. Masz także wizję idealnego rozmieszczenia zwierząt. Czy można je osiągnąć za pomocą ciągu ruchów?

Wejście

Pierwszy wiersz wejścia zawiera dwie liczby całkowite $n$ ($1 \le n \le 4 \cdot 10^5$) i $m$ ($0 \le m \le 4 \cdot 10^5$), oznaczające liczby wybiegów i tuneli. Dalej jest $n$ wierszy, z których $i$-ty zawiera dwie liczby całkowite $b_i$ ($1 \le b_i \le 10^6$) i $e_i$ ($1 \le e \le 10^6$), oznaczające typ zwierzęcia na wybiegu $i$ na początku oraz typ, który ma się znajdować na wybiegu $i$ po wszystkich ruchach. Można założyć, że $e_1, \ldots, e_n$ jest permutacją $b_1, \ldots, b_n$.

Następne $m$ wierszy opisuje tunele. Każdy zawiera dwie liczby całkowite $x$ i $y$ ($1 \le x < y \le n$), wskazujące, że wybiegi $x$ i $y$ łączy dwukierunkowy tunel. Żadne dwa wybiegi nie są połączone więcej niż jednym tunelem.

Wyjście

Jeżeli można przenieść zwierzęta tak, aby każdy wybieg zawierał żądany typ, wypisz possible. W przeciwnym razie wypisz impossible.

Przykład

Wejście 1

3 3
1 4
4 7
7 1
1 2
2 3
1 3

Wyjście 1

possible

Wejście 2

2 1
1 2
2 1
1 2

Wyjście 2

impossible

Wejście 3

5 6
10 40
20 30
30 50
40 20
50 10
1 2
2 3
1 3
3 4
3 5
4 5

Wyjście 3

possible

Wejście 4

4 4
10 10
10 20
20 10
20 20
1 2
2 3
3 4
1 4

Wyjście 4

impossible

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.