- Mã:
- REPORT
- Tên:
- Gửi báo cáo
- Dạng thi:
- oi
- Thang điểm:
- 10 điểm
- Giới hạn thời gian:
- 1 giây
- Giới hạn bộ nhớ:
- 64 MB
- Được tạo bởi:
- AresGod
Công ty Tú
đang thực tập là một công ty rất nổi tiếng và uy tín. Ở công ty này, mỗi nhân
viên có thể không có ai là sếp trực tiếp của mình hoặc là có ít nhất 1 sếp trực
tiếp , và những nhân viên có nhiệm vụ phải gửi báo cáo định kì cho các sếp của
mình. Có thể giả dụ rằng nếu A là sếp của B,D và B cũng là sếp của D (nhìn vào
hình dưới), như vậy D có thể gửi báo cáo cho B và A , còn B có thể gửi báo cáo
cho A. Trong trường hợp này thì D không cần phải trực tiếp gửi báo cáo cho A nữa
vì báo cáo từ D sau khi gửi đến B cũng sẽ được tổng hợp để đến A.
Nếu ta coi
các việc gửi báo cáo như một đồ thị, vậy chúng ta hoàn toàn có thể bỏ đi cạnh
D->A ở hình trên (những cạnh như vậy được gọi là cạnh “dư thừa”).
Việc của Tú được
giao là cho đồ thị biểu diễn công việc gửi báo cáo của các nhân viên, cần tìm
ra các cạnh “dư thừa” để loại bỏ sao cho các sếp vẫn nhận được tất cả báo cáo của
các nhân viên trực tiếp của mình. Biết rằng
trong công ty không có quá 200 nhân viên, sẽ không có những trường hợp tạo thành chu trình như A là sếp
của B, B là sếp của C, C là sếp của A.
Input:
- Dòng đầu
là số M là số quan hệ của các nhân viên.
- M dòng tiếp theo mỗi dòng 2 chuỗi s1, s2 là tên của nhân viên (s2 là sếp trực tiếp của s1)
Output:
- Gồm một số
đầu tiên là số các cạnh “dư thừa” E.
- E dòng tiếp theo là danh sách các cạnh đó theo thứ tự từ điển, mỗi dòng gồm 2 chuỗi T1, T2 miêu tả cạnh T1-T2 là cạnh “dư thừa”.
Example input |
Example output |
5 D B D C D A B A C A |
1 D A |
Theme :
Mời bạn soạn code