전략 폭격

면접 대비

시간 제한1초메모리 제한128 MB

요약
점이 최대 26개인 무방향 그래프에서 제거하면 A와 B 사이의 모든 경로가 끊기는 간선을 모두 찾아 입력 순서대로 출력한다.
난이도

보통10점 중 7점

유형
그래프, DFS, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

적군은 특정한 두 지점 A와 B 사이에서 물자와 병력을 수송하는 데 크게 의존하고 있다. 지점 A와 B, 그리고 다른 지점 C, D, E 등은 도로망으로 연결되어 있다. 당신의 임무는(받아들인다면) A와 B 사이의 모든 통행을 차단하기 위해 폭격할 수 있는 도로를 모두 찾아내는 것이다.

입력

각 지점은 하나의 대문자로 표시되며, 따라서 지점은 최대 26개다. 입력의 각 줄은 도로로 연결된 두 지점을 나타내며, 두 글자를 구분 기호 없이 이어 쓴다. 입력의 끝은 ** 만 있는 줄로 표시된다.

모든 도로는 양방향이므로 도로 AC와 도로 CA는 같다. 임의의 두 지점 사이에는 도로가 최대 하나 있다.

출력

폭격하면 A와 B 사이의 모든 통행이 끊기는 도로, 즉 A에서 B로 가는 모든 경로에 반드시 포함되는 도로를 모두 출력한다. 이러한 도로를 입력에 등장한 순서대로 한 줄에 하나씩, 입력에 주어진 두 글자를 같은 순서로 그대로 출력한다.

목록 다음 줄에는 There are n disconnecting roads. 를 출력하며, 여기서 nn 은 그러한 도로의 개수다. 그러한 도로가 없으면 There are 0 disconnecting roads. 를 출력한다.

예제3

  1. 예제 1

    입력
    AC
    AD
    AE
    CE
    CF
    ED
    GF
    BG
    HB
    GH
    **
    
    예상 출력
    CF
    GF
    There are 2 disconnecting roads.
    
  2. 예제 2

    입력
    AB
    **
    
    예상 출력
    AB
    There are 1 disconnecting roads.
    
  3. 예제 3

    입력
    AC
    CB
    AD
    DB
    **
    
    예상 출력
    There are 0 disconnecting roads.