Nội dung Bài tập
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


    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận