[Buổi 31][DSU][RDD] Bài 4: Làm việc nhóm
Làm việc nhóm
Trong một nhiệm vụ khám phá vũ trụ, FullHouse Dev được giao nhiệm vụ quản lý các đội tàu vũ trụ. Để tối ưu hóa hiệu quả làm việc, họ cần một hệ thống để theo dõi khả năng hợp tác giữa các đội. Nếu đội A có thể làm việc với đội B, và đội B có thể làm việc với đội C, thì đội A cũng có thể làm việc với đội C và ngược lại.
Bài toán
FullHouse Dev sẽ nhận được hai loại thông báo:
- Loại thứ nhất: J X Y nghĩa là đội X có thể làm việc với đội Y.
- Loại thứ hai: ? X Y để kiểm tra xem đội X và đội Y có thể làm việc cùng nhau hay không.
Với mỗi thông báo loại thứ hai, cần trả lời "YES" nếu hai đội có thể làm việc cùng nhau và "NO" nếu không thể. Nhiệm vụ là đếm tổng số câu trả lời "YES" và "NO".
INPUT FORMAT:
- Dòng đầu tiên chứa số nguyên \(t\) - số lượng test case
- Dòng đầu tiên của mỗi test case chứa hai số nguyên \(n\) và \(q\), trong đó \(n\) là số lượng đội và \(q\) là số lượng thông báo
- \(q\) dòng tiếp theo, mỗi dòng chứa một thông báo theo định dạng "J X Y" hoặc "? X Y"
OUTPUT FORMAT:
- Với mỗi test case, in ra hai số nguyên: tổng số câu trả lời "YES" và tổng số câu trả lời "NO"
Ràng buộc:
- \(1 \leq t \leq 10\)
- \(1 \leq n \leq 10^5\)
- \(1 \leq q \leq 10^5\)
Ví dụ
INPUT
1
6 6
J 1 3
? 2 3
J 3 6
? 5 1
J 1 5
? 1 3
OUTPUT
1 2
Giải thích
Trong ví dụ có 6 đội và 6 thông báo:
- J 1 3: đội 1 và đội 3 bắt đầu làm việc cùng nhau
- ? 2 3: câu trả lời là NO
- J 3 6: đội 3 và đội 6 bắt đầu làm việc cùng nhau
- ? 5 1: câu trả lời là NO
- J 1 5: đội 1 và đội 5 bắt đầu làm việc cùng nhau
- ? 1 3: câu trả lời là YES
Vì vậy, kết quả là 1 YES và 2 NO, output là "1 2"
Comments