만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

그랜드 테스트

시간 제한3초메모리 제한512 MB

요약
각 무방향 그래프에서 두 정점 사이에 내부 정점과 간선이 모두 겹치지 않는 세 경로가 존재하는지 판별한다.
난이도

보통10점 중 7점

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

문제

제레미, 리처드, 제임스는 자동차를 시험하기를 좋아한다. 시험할 장소를 정하는 일은 늘 어렵다. 세 사람은 나라를 하나 고른 뒤 그 나라의 도시와, 도시를 잇는 양방향 도로를 살핀다.

시험을 하려면 서로 다른 두 도시 SS와 FF, 그리고 SS에서 FF로 가는 경로 세 개가 필요하다. 경로는 도시의 수열 v1,v2,…,vkv_1, v_2, \dots, v_k이며 v1=Sv_1 = S, vk=Fv_k = F이고, 1≤i≤k−11 \le i \le k-1인 모든 ii에 대해 viv_i와 vi+1v_{i+1}을 잇는 도로가 있다. 한 경로 안에 같은 도시가 두 번 나오지는 않는다.

경로 세 개는 두 조건을 지켜야 한다. SS와 FF를 뺀 모든 도시는 세 경로 가운데 많아야 한 경로에만 나온다. 어떤 도로도 두 경로 이상에 쓰이지 않는다.

조건을 만족하는 SS, FF와 경로 세 개가 있으면 세 사람은 각자 SS에서 차를 몰고 서로 다른 경로로 달려 누가 FF에 먼저 닿는지 겨룬다.

나라 여러 개의 정보가 주어진다. 각 나라마다 위 조건대로 두 도시와 경로 세 개를 고를 수 있는지 판정한다.

입력

첫 줄에 나라의 수 TT가 주어진다 (1≤T≤100 0001 \le T \le 100\,000). 이어서 나라 TT개의 정보가 주어진다.

각 나라의 첫 줄에는 도시의 수 nn과 도로의 수 mm이 주어진다 (1≤n,m≤100 0001 \le n, m \le 100\,000). 다음 mm개 줄에는 도로의 양 끝 도시 uiu_i와 viv_i가 주어진다 (1≤ui<vi≤n1 \le u_i < v_i \le n). 모든 도로는 양방향이고, 두 도시를 잇는 도로는 많아야 한 개다.

모든 나라의 nn을 더한 값과 mm을 더한 값은 각각 100 000100\,000 이하다.

출력

각 나라마다 한 줄에 답을 출력한다. 조건을 만족하는 두 도시 SS, FF와 경로 세 개가 있으면 YES를, 없으면 NO를 출력한다. 답은 입력에 주어진 나라 순서대로 출력한다.

예제2

  1. 예제 1

    입력
    2
    6 6
    3 6
    3 4
    1 4
    1 2
    1 3
    2 3
    3 1
    1 2
    
    예상 출력
    YES
    NO
    
  2. 예제 2

    입력
    3
    3 3
    1 2
    1 3
    2 3
    4 5
    1 2
    1 3
    2 3
    2 4
    3 4
    4 3
    1 2
    1 3
    1 4
    
    예상 출력
    NO
    YES
    NO