trang chủ / đề bài / voi06_cirarc

Kênh xung yếu

Đề bài

Mô tả

Một hệ thống n máy tính (các máy tính được đánh số từ 1 đến n) được nối lại thành một mạng bởi m kênh nối, mỗi kênh nối hai máy nào đó và cho phép truyền tin một chiều từ máy này đến máy kia. Ta gọi một mạch vòng của mạng đã cho là một dãy các máy tính và các kênh nối chúng có dạng:

u1,e1,u2,…,ui,ei,ui+1,…,uk−1,ek−1,uk,ek,u1

trong đó u1,u2,…,uk là các máy tính khác nhau trong mạng, ei là kênh truyền tin từ máy ui đến máy ui+1 (i=1,2,…,k−1), ek là kênh truyền tin từ máy uk đến máy u1. Một kênh truyền tin trong mạng được gọi là kênh xung yếu nếu như bất cứ mạch vòng nào của mạng cũng đều chứa nó. Nếu mạng không có mạch vòng nào thì mạng không có kênh xung yếu.

Yêu cầu: Hãy xác định tất cả các kênh xung yếu của mạng đã cho.

Dữ liệu vào

  • Dòng đầu tiên chứa 2 số nguyên dương n và m.
  • Dòng thứ i trong số m dòng tiếp theo mô tả kênh nối thứ i bao gồm hai số nguyên dương ui, vi cho biết kênh nối thứ i cho phép truyền tin từ máy ui đến máy vi (ui≠vi). Không có hai kênh nối nào có cùng cặp (ui,vi).

Các số trên cùng một dòng được ghi cách nhau bởi dấu cách.

Dữ liệu ra

  • Dòng đầu tiên ghi số nguyên k là số lượng kênh xung yếu trong mạng đã cho. Ghi k=−1 nếu mạng không chứa kênh xung yếu.
  • Nếu k>0 thì mỗi dòng trong số k dòng tiếp theo ghi thông tin về một kênh xung yếu tìm được theo qui cách mô tả giống như trong dữ liệu vào (hai số u, v). Các kênh được in ra theo thứ tự từ điển của cặp số (u,v).

Ràng buộc

  • 2≤n≤1000, 1≤m≤20000.
  • 1≤ui,vi≤n, ui≠vi, các cặp (ui,vi) đôi một khác nhau.

Subtasks

  • Subtask 1 (50% số test): n≤200.
  • Subtask 2 (50% số test): 200<n≤1000.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
2 2
1 2
2 1
2
1 2
2 1
Mạng chỉ có một mạch vòng 1→2→1, cả hai kênh đều nằm trên nó.
4 5
1 2
2 3
3 1
2 4
4 1
1
1 2
Có hai mạch vòng 1→2→3→1 và 1→2→4→1, chỉ kênh (1,2) nằm trên cả hai.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0