#aBC293D. [ABC293D] Tying Rope

[ABC293D] Tying Rope

AT_abc293_d [ABC293D] Tying Rope

题目描述

NN 根绳子,每根绳子的一端被涂成红色,另一端被涂成蓝色。绳子的编号从 11NN

接下来要进行 MM 次操作。在第 ii 次操作中,将绳子 AiA_i 的颜色为 BiB_i 的一端与绳子 CiC_i 的颜色为 DiD_i 的一端连接起来。这里,颜色 R 表示红色,颜色 B 表示蓝色。对于每根绳子,相同颜色的端点不会被多次连接。

所有操作结束后,请输出所有连成一组的绳子中,形成环的组数 XX 和不形成环的组数 YY

这里,连成一组的绳子集合 {v0,v1,,vx1}\lbrace v_0, v_1, \ldots, v_{x-1} \rbrace 被认为是环状的,当且仅当可以重新排列 vv 的顺序,使得对于每个 0i<x0 \leq i < x,绳子 viv_i 和绳子 v(i+1)modxv_{(i+1)\bmod x} 是连接在一起的。

输入格式

输入以如下格式从标准输入读入。

NN MM A1A_1 B1B_1 C1C_1 D1D_1 A2A_2 B2B_2 C2C_2 D2D_2 \vdots AMA_M BMB_M CMC_M DMD_M

输出格式

对于所有连成一组的绳子,输出环状的组数 XX 和非环状的组数 YY,以空格分隔,按此顺序输出。

输入输出样例 #1

输入 #1

5 3
3 R 5 B
5 R 3 B
4 R 2 B

输出 #1

1 2

输入输出样例 #2

输入 #2

7 0

输出 #2

0 7

输入输出样例 #3

输入 #3

7 6
5 R 3 R
7 R 4 R
4 B 1 R
2 R 3 B
2 B 5 B
1 B 7 B

输出 #3

2 1

说明/提示

限制条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 0M2×1050 \leq M \leq 2 \times 10^5
  • 1Ai,CiN1 \leq A_i, C_i \leq N
  • $(A_i, B_i) \neq (A_j, B_j),\ (C_i, D_i) \neq (C_j, D_j)\ (i \neq j)$
  • (Ai,Bi)(Cj,Dj)(A_i, B_i) \neq (C_j, D_j)
  • N,M,Ai,CiN, M, A_i, C_i 是整数
  • Bi,DiB_i, D_i 只能是 RB

样例解释 1

连成一组的绳子有 {1} \lbrace 1 \rbrace {2,4} \lbrace 2,4 \rbrace {3,5} \lbrace 3,5 \rbrace 33 组。其中 {3,5} \lbrace 3,5 \rbrace 是环状的,{1} \lbrace 1 \rbrace {2,4} \lbrace 2,4 \rbrace 不是环状的。因此 X=1,Y=2X=1, Y=2

由 ChatGPT 4.1 翻译