#arc036d. [arc036_d]偶数メートル

[arc036_d]偶数メートル

问题文

高桥同学所在的国家有 NN 个城市。每个城市都用从 11NN 的整数进行编号。然而,这些城市之间还没有交通工具可供移动。因此,国家决定提供补助金,修建连接不同的 22 个城市之间的道路。每条道路都有其特定的长度。被修建的道路可以从连接的两个国家中的任意一个国家前往另一个国家,也就是说,这是一条双向道路。

顺便说一下,高桥同学非常喜欢偶数。他会利用道路移动,即使这可能会绕远路,也会让总移动距离成为偶数米。此外,高桥同学不喜欢做事半途而废,所以他不会在途中返回曾经走过的道路。

高桥同学偶尔会指定两个城市,并询问你是否可以以偶数米的距离移动到它们之间。正如前面所述,由于现在正在增加道路,因此请注意,根据问题的提问时机,新建的道路可能会影响是否可以以偶数米的距离移动。

另外,请注意,在城市内部的移动不计入总移动距离。

给定道路的修建和高桥同学的问题信息,按照时间顺序创建一个程序来回答高桥同学的问题。


输入

输入以以下格式从标准输入中给出:

NN QQ w1w_1 x1x_1 y1y_1 z1z_1 w2w_2 x2x_2 y2y_2 z2z_2 : wQw_Q xQx_Q yQy_Q zQz_Q

  • 11 行包含高桥同学所在国家的城市数量 N(1N105)N (1 ≦ N ≦ 10^5) 和提供的信息数量 Q(1Q105)Q (1 ≦ Q ≦ 10^5)
  • QQ 行中的第 ii 行(i=1,,Qi = 1, \ldots, Q)包含描述第 ii 条信息的整数 wi,xi,yi,ziw_i, x_i, y_i, z_i。每个变量满足以下约束:
    • 1wi21 ≦ w_i ≦ 2
    • 1xi,yiN1 ≦ x_i, y_i ≦ N
    • xiyix_i ≠ y_i
    • 1zi1051 ≦ z_i ≦ 10^5
  • wi=1w_i = 1 时,表示在城市 xix_i 和城市 yiy_i 之间铺设长度为 ziz_i 米的道路。
  • wi=2w_i = 2 时,表示高桥同学询问是否可以以偶数米的距离移动到城市 xix_i 和城市 yiy_i 之间。此时,ziz_i 总是等于 11
  • 同一对城市可能会有多条道路。
  • 注意,当高桥同学提问时,先前所有道路建设已经完成。

部分分

本问题设置了部分分。

  • 对于满足 1N3,000,1Q3,0001 ≦ N ≦ 3,000 , 1 ≦ Q ≦ 3,000 的数据集,如果给出正确答案,将得到 3030 分。
  • 对于满足 1N105,1Q1051 ≦ N ≦ 10^5 , 1 ≦ Q ≦ 10^5 的数据集,如果给出正确答案,将再额外得到 7070 分。总共可以得到 100100 分。

输出

输出有多行组成。每当高桥同学询问时,请在一行中输出 YES(可以以偶数米的距离移动)或 NO(无法以偶数米的距离移动)。


输入示例1


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

输出示例1


NO
YES
YES
YES

每个问题时刻的城市和道路情况如下图所示。左侧是第 1122 个问题发生时的情况,右侧是第 3344 个问题发生时的情况。

对于第 22 个问题,按照顺序通过道路 2,1,3,52, 1, 3, 5 移动总共 1010 米。

对于第 33 个问题,按照顺序通过道路 1,4,2,1,3,51, 4, 2, 1, 3, 5 移动总共 2020 米。

对于第 44 个问题,按照顺序通过道路 3,1,2,4,1,3,53, 1, 2, 4, 1, 3, 5 移动总共 2222 米。


输入示例2


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

输出示例2


NO
NO
NO

在第一个问题发生时,根本就没有办法从城市 11 到城市 33。因此答案是 NO


输入示例3


3 6
1 1 2 1
1 1 3 3
1 2 3 2
1 2 1 2
2 1 3 1
2 2 3 1

输出示例3


YES
YES

请注意,对于同一对城市可能会有多条道路。