#P12307. [ICPC 2022 WF] Zoo Management
[ICPC 2022 WF] Zoo Management
题目描述
When managing a zoo, you sometimes want to move the animals between enclosures. You might figure out that the zebras will enjoy the spacier enclosure currently occupied by the penguins, while the penguins might want to move to the colder enclosure where the koalas currently live; and koalas will move to an empty enclosure that can be filled up with eucalyptus. So, you would move the koalas first, to free up the colder enclosure, then move the penguins there, and finally move the zebras.
The way you move animals is by using special tunnels that connect the enclosures — you do not want the animals to move outside, both because of the risk that they will be scared, and because of the risk that they might run away and hurt themselves.
Unfortunately, you have acquired more animals recently, and all the enclosures are now full, which makes moving animals around much harder. Imagine, for instance, that the koalas were to move to the former zebra enclosure — you cannot move any set of animals first. Instead, what you learned to do, is to move the animals at the same time — the zebras, koalas and penguins start moving down different tunnels at the same time, and arrive at their new enclosures at the same time — and thus they never meet. Note that you cannot just swap the animals in two connected enclosures this way (because they would meet in the tunnel and become scared).
So, now you have a puzzle. You have a list of enclosures, each with an animal type inside; some of those enclosures are connected by tunnels. You can, any number of times, choose some set of animals and move each one to an enclosure adjacent by tunnel, as long as the animal in that enclosure is also moved as the part of the same move, and no tunnel is used more than once as a part of the same move. You also have your vision of the perfect way to position the animals. Is it possible to do so, in a series of moves?
输入格式
The first line of the input consists of two integers () and (), indicating the number of enclosures and tunnels. Then follow lines, the of which contains two integers () and (), indicating the type of animal that is in enclosure at the beginning, and the type of animal that you want to be in enclosure after all the moves. You may assume that is a permutation of .
Then follow lines describing the tunnels. Each line contains two integers and (), indicating that enclosures and are connected by a two-way tunnel. No two enclosures are connected by more than one tunnel.
输出格式
If it is possible to move the animals so that every enclosure contains the desired animal type, output possible
. Otherwise, output impossible
.
3 3
1 4
4 7
7 1
1 2
2 3
1 3
possible
2 1
1 2
2 1
1 2
impossible
5 6
10 40
20 30
30 50
40 20
50 10
1 2
2 3
1 3
3 4
3 5
4 5
possible
4 4
10 10
10 20
20 10
20 20
1 2
2 3
3 4
1 4
impossible