Wesley's Anger Contest 4 Problem 5 - Time Travelling Squirrels
View as PDFThe squirrel nation is building a road network to transport acorns between their cities. They are scattered among  different cities, the 
 of which currently has 
 acorns. Initially, in the original timeline, the cities are disconnected from each other.
Over time,  different squirrels will perform one of three types of actions:
- A squirrel will build more roads to connect some of their cities. Of course, the squirrels, having recently discovered time travel, will sometimes go back in time and build the roads a different way. Specifically, the 
squirrel will decide to time travel to the same timeline as another squirrel
, where
, and build a new road in that timeline between cities
and
.
 - A squirrel will time travel back to the same timeline as another squirrel 
, where
, start in a specific city
, and eat all the acorns in the city with the largest number of acorns that is reachable from city
(including city
). If there are multiple cities with the largest number of acorns, then the squirrel will pick one arbitrarily.
 - A squirrel will time travel back to the same timeline as another squirrel 
, where
, start in a specific city
, and add
acorns to each city reachable from city
(including city
).
 
Note that each squirrel creates a new timeline, so future actions cannot affect past actions. When a squirrel  time travels to the same timeline as another squirrel 
, all actions performed by squirrel 
 have already occurred.
You are asked to record the number of acorns eaten after each type  action. Can you help the squirrel nation keep track of all the acorns eaten?
Constraints
For this problem, you will NOT be required to pass all the samples in order to receive points. In addition, all subtasks are disjoint, and you are NOT required to pass previous subtasks to earn points for a specific subtask.
For all subtasks:
 
 for all 
 
 for all 
 
 for all 
 
 for all 
Subtask 1 [13%]
Subtask 2 [14%]
 for all 
 
There will be no actions of type .
Subtask 3 [20%]
 for all 
Subtask 4 [20%]
There will be no actions of type .
Subtask 5 [33%]
No additional constraints.
Input Specification
The first line of input contains  integers, 
 and 
, representing the number of cities in the squirrel nation, and the number of time travelling squirrels.
The next line contains  integers, which describe the initial number of the acorns in each city. The 
 integer on this line is 
, indicating that the 
 city initially has 
 acorns.
The next  lines describe the squirrels' actions. The input will be given in encrypted format. Instead of each variable 
 being given, a variable 
 will be given instead. To decrypt the input, you should take the bitwise 
 of the last value that was outputted, and 
, that is 
. If no previous value was outputted, then 
. Note that the first integer on each line providing the type of action is not encrypted.
The  of these lines will be in one of three forms.
1 j_i' a_i' b_i'indicating that squirrelperforms a type
action by time traveling back to the same timeline as squirrel
, creating a new timeline, and building a new road between cities
and
.
2 j_i' a_i'indicating that squirrelperforms a type
action by time traveling back to the same timeline as squirrel
, creating a new timeline, and eating all acorns from the city with the largest number of acorns that is reachable from city
(including city
). If there are multiple cities with the largest number of acorns, the squirrel will pick one arbitrarily.
3 j_i' a_i' c_i'indicating that squirrelperforms a type
action by time traveling back to the same timeline as squirrel
, creating a new timeline, and adding
acorns to each city reachable from city
(including city
).
For all squirrels, if , then squirrel 
 has time travelled back to the original timeline, where all cities are disconnected.
Output Specification
This problem is graded with an identical checker. This includes whitespace characters. Ensure that every line of output is terminated with a \n character and that there are no trailing spaces.
After each type  action, output the number of acorns eaten by that squirrel. If no acorns were eaten by that squirrel, output 
 instead.
Sample Input 1
2 3
1 2
2 0 2
1 3 3 0
2 0 0
Sample Input 1 Decrypted
For your convenience, below is a version of Sample Input 1 that is NOT encrypted. Note that all of the actual test files will be encrypted in the format specified above.
2 3
1 2
2 0 2
1 1 1 2
2 2 2
Sample Output 1
2
1
Sample Explanation 1
Squirrel  time travels to the original timeline, starts in city 
, and eats 
 acorns from city 
. 
Squirrel  time travels to squirrel 
's timeline and builds a road between cities 
 and 
. 
Squirrel  time travels to squirrel 
's timeline, starts in city 
, and eats 
 acorn from city 
. Note that they cannot eat any acorns from city 
 since they were already eaten by squirrel 
, and this timeline was created from squirrel 
's timeline, which in turn was created from squirrel 
's timeline.
Sample Input 2
3 7
1 2 1
1 0 1 2
2 1 2
3 2 1 0
1 1 0 1
2 6 0
2 3 1
2 4 0
Sample Input 2 Decrypted
For your convenience, below is a version of Sample Input 2 that is NOT encrypted. Note that all of the actual test files will be encrypted in the format specified above.
3 7
1 2 1
1 0 1 2
2 1 2
3 0 3 2
1 3 2 3
2 4 2
2 0 2
2 6 2
Sample Output 2
2
3
2
0
Sample Explanation 2
Squirrel  time travels to the original timeline and builds a road between cities 
 and 
. 
Squirrel  time travels to squirrel 
's timeline, starts in city 
, and eats 
 acorns from city 
. 
Squirrel  time travels to the original timeline and adds 
 acorns to all cities reachable from city 
 (which is just city 
). 
Squirrel  time travels to squirrel 
's timeline and builds a road between cities 
 and 
. 
Squirrel  time travels to squirrel 
's timeline, starts in city 
, and eats 
 the acorns from city 
. 
Squirrel  time travels to the original timeline, starts in city 
, and eats 
 acorns from city 
. 
Squirrel  time travels to squirrel 
's timeline, starts in city 
, and does not eat any acorns, as they are no cities reachable from city 
 that have acorns in this timeline.
Comments