오름차순 최단 경로

시간 제한2초메모리 제한1024 MB

요약
정점 1에서 각 정점까지의 최단 경로 비용이 정점 번호가 커질수록 엄격히 증가하도록 모든 간선에 양의 정수 비용을 줄 수 있는지 판별한다.
난이도

보통10점 중 7점

유형
그래프, BFS, 그리디, 최단 경로
정답자
아직 제출이 없습니다

문제

정점 NN개와 간선 MM개로 이루어진 방향 없는 그래프가 주어진다. 이 그래프의 간선의 비용은 아직 정해지지 않았다. 아래의 조건을 만족하도록 그래프의 간선의 비용을 정할 수 있는지 판별해 보자.

  • 간선의 비용은 양의 정수여야 한다.
  • 모든 (i,j)\left(i, j\right)쌍에 대해서 (1<i<j≤N)\left(1 \lt i \lt j\leq N\right), 정점 11에서 정점 ii로의 최단 경로의 비용이 정점 11에서 정점 jj로의 최단 경로의 비용보다 작아야 한다.

최단 경로의 구체적인 정의는 아래 힌트에 나와 있다.

입력

첫째 줄에 정점의 개수 NN과 간선의 개수 MM이 공백으로 구분되어 주어진다. (2≤N≤200,000;(2\leq N\leq 200\\, 000; 1≤M≤200,000)1\leq M\leq 200\\, 000)

이어지는 MM개의 줄에 정수 aa와 bb가 공백으로 구분되어 주어진다. 이는 정점 aa와 정점 bb를 연결하는 간선이 존재함을 의미한다. (1≤a<b≤N)\left(1\leq a \lt b\leq N\right)

주어진 그래프의 모든 정점이 연결되어 있고, 중복된 간선이 주어지지 않음이 보장된다.

출력

주어진 조건을 만족하도록 그래프의 간선의 비용을 정해줄 수 있다면 YES를, 그렇지 않다면 NO를 출력한다.

힌트

정점 aa에서 정점 bb로의 최단 경로란 정점 aa에서 정점 bb로 이동하는 경로 중 가장 짧은 경로를 의미합니다.

구체적으로 V_1=a,V_K=bV\_1 = a, V\_K = b이고 V_iV\_i와 V_i+1V\_{i+1}를 연결하는 간선이 존재할 때, V_iV\_i와 V_i+1V\_{i+1}를 연결하는 간선의 비용의 합이 최소인 수열 VV를 의미합니다. (1≤i≤K−1)\left(1\leq i\leq K-1\right)

최단 경로의 비용이란 최단 경로에 사용된 간선의 비용의 합을 의미합니다.

예제2

  1. 예제 1

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

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