CF BUDDY
← Problems·

1166F · Vicky's Delivery Service

2400 · data structures, dsu, graphs

Problem: In a magical land there are nn cities conveniently numbered 1,2,,n1, 2, \dots, n. Some pairs of these cities are connected by magical colored roads. Magic is unstable, so at any time, new roads may appear between two cities.

Vicky the witch has been tasked with performing deliveries between some pairs of cities. However, Vicky is a beginner, so she can only complete a delivery if she can move from her starting city to her destination city through a double rainbow. A double rainbow is a sequence of cities c1,c2,,ckc_1, c_2, \dots, c_k satisfying the following properties:

  • For each ii with 1ik11 \le i \le k - 1, the cities cic_i and ci+1c_{i + 1} are connected by a road.
  • For each ii with 1ik121 \le i \le \frac{k - 1}{2}, the roads connecting c2ic_{2i} with c2i1c_{2i - 1} and c2i+1c_{2i + 1} have the same color.

For example if k=5k = 5, the road between c1c_1 and c2c_2 must be the same color as the road between c2c_2 and c3c_3, and the road between c3c_3 and c4c_4 must be the same color as the road between c4c_4 and c5c_5.

Vicky has a list of events in chronological order, where each event is either a delivery she must perform, or appearance of a new road. Help her determine which of her deliveries she will be able to complete.

Input Format: The first line contains four integers nn, mm, cc, and qq (2n1052 \le n \le 10^5, 1m,c,q1051 \le m, c, q \le 10^5), denoting respectively the number of cities, the number of roads initially present, the number of different colors the roads can take, and the number of events.

Each of the following mm lines contains three integers xx, yy, and zz (1x,yn1 \le x, y \le n, 1zc1 \le z \le c), describing that there initially exists a bidirectional road with color zz between cities xx and yy.

Then qq lines follow, describing the events. Each event is one of the following two types:

    • x y z (1x,yn1 \le x, y \le n, 1zc1 \le z \le c), meaning a road with color zz appears between cities xx and yy;
  1. ? x y (1x,yn1 \le x, y \le n), meaning you should determine whether Vicky can make a delivery starting at city xx and ending at city yy. It is guaranteed that xyx \neq y.

It is guaranteed that at any moment, there is at most one road connecting any pair of cities, and that no road connects a city to itself. It is guaranteed that the input contains at least one event of the second type.

Output Format: For each event of the second type, print a single line containing "Yes" (without quotes) if the delivery can be made, or a single line containing "No" (without quotes) otherwise.

Note: The following picture corresponds to the sample.

For her first delivery, Vicky can use the sequence 1, 2, 3, 4 which is a double rainbow. However, she cannot complete the second delivery, as she can only reach city 33. After adding the road between cities 11 and 33, she can now complete a delivery from city 44 to city 11 by using the double rainbow 4, 3, 1.

Sample Cases

Case 1

Input

4 3 2 4
1 2 1
2 3 1
3 4 2
? 1 4
? 4 1
+ 3 1 2
? 4 1

Output

Yes
No
Yes

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback