Cấp bậc trong công ty
Xem PDF
Điểm:
1800
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Có \(n\) nhân viên đang làm việc trong một công ty. Các nhân viên được đánh số từ \(1\) tới \(n\). Ban đầu giữa các nhân viên với nhau không có mối quan hệ thứ bậc. Tuy nhiên, sau \(m\) ngày thì một số sự kiện diễn ra. Các sự kiện thuộc một trong ba loại sau:
- Nhân viên \(y\) trở thành sếp của nhân viên \(x\) (tại thời điểm này nhân viên \(x\) chưa có sếp).
- Nhân viên \(x\) nhận một tập hồ sơ thứ \(i\) để xem xét, sau đó gửi cho sếp của mình. Người sếp này sau khi xem xét xong cũng gửi cho sếp của mình và cứ như thế cho đến khi tới người không có sếp.
- Nhận được một câu truy vấn dưới dạng \(x\) \(i\): hãy kiểm tra xem nhân viên \(x\) đã xem tập hồ sơ thứ \(i\) hay chưa.
Yêu cầu: Với mỗi sự kiện thuộc loại thứ 3, hãy đưa ra câu trả lời tương ứng.
Input
- Dòng đầu tiên chứa hai số nguyên \(n\) và \(m\) (\(1 \le n, m \le 10^5\)) — Số nhân viên và số lượng các sự kiện.
- \(m\) dòng tiếp theo, mỗi dòng mô tả một sự kiện diễn ra. Mỗi dòng bắt đầu bằng một số \(t\) (\(t \le 3\)):
- Nếu \(t=1\): theo sau là hai số \(x\) và \(y\) (\(1 \le x, y \le n\)) — mô tả sự kiện loại 1.
- Nếu \(t=2\): theo sau là một số \(x\) (\(1 \le x \le n\)) — mô tả sự kiện loại 2.
- Nếu \(t=3\): theo sau là hai số \(x\) và \(i\) (\(1 \le x \le n\); \(1 \le i \le \text{[số tập tài liệu đã nhận]}\)) — mô tả sự kiện loại 3.
Output
- Với mỗi sự kiện loại 3, in ra
YESnếu nhân viên đó đã xem tập tài liệu, ngược lại in raNO.
Example
Test 1
Input
4 9
1 4 3
2 4
3 3 1
1 2 3
2 2
3 1 2
1 3 1
2 2
3 1 3
Output
YES
NO
YES
Constraints
- \(1 \le n, m \le 10^5\)
- Với sự kiện loại 1: Đảm bảo \(x\) chưa có sếp tại thời điểm đó và không tạo thành chu trình.
- Với sự kiện loại 3: Chỉ số \(i\) của tập hồ sơ được tính theo thứ tự xuất hiện của các sự kiện loại 2 (tập hồ sơ đầu tiên từ sự kiện loại 2 đầu tiên có chỉ số là 1).
Bình luận