해결한 사람
0
명
정답률
0.00
%
시간 제한
3000
ms
메모리 제한
245
MB
은행 고객 Oleg는 Bankopolia에 산다. Bankopolia에는 n개의 도시가 있으며, 일부 도시 쌍은 bi-방향 도로로 직접 연결되어 있다. 도시에는 1부터 n까지 번호가 매겨져 있다. Bankopolia에는 총 m개의 도로가 있으며, i-th 도로는 도시 ui와 vi를 연결한다. 각 도시에서 일부 도로를 이용해 다른 어떤 도시로든 이동할 수 있음이 보장된다.
Oleg는 각 도시에 표식을 부여하려고 한다. 도시 i의 표식이 xi라고 하자. 그러면 모든 도시 쌍 (u, v)에 대해, |xu - xv| ≤ 1이라는 조건은 u와 v를 연결하는 도로가 있을 때, 그리고 그럴 때에만 성립해야 한다.
Oleg는 이러한 표식 부여가 가능한지 궁금해한다. 가능하다면 그러한 표식 부여의 예를 찾고, 그렇지 않다면 불가능하다고 명시한다.
입력의 첫 번째 줄에는 공백으로 구분된 두 정수 n와 m (2 ≤ n ≤ 3·105, 1 ≤ m ≤ 3·105)이 주어지며, 각각 도시의 수와 도로의 수를 나타낸다.
이어서 m개의 줄이 주어진다. i-th 줄에는 공백으로 구분된 두 정수 ui와 vi (1 ≤ ui, vi ≤ n, ui ≠ vi)이 주어지며, 이는 i-th 도로로 연결된 도시들이다. 각 도시 쌍 사이에는 최대 하나의 도로만 있으며, 일부 도로를 이용해 어떤 도시에서든 다른 어떤 도시로든 이동할 수 있음이 보장된다.
요구되는 표식 부여가 불가능하면, 문자열 "NO"을 따옴표 없이 한 줄에 출력한다.
그렇지 않으면 첫 번째 줄에 문자열 "YES"을 따옴표 없이 출력한다. 다음 줄에는 공백으로 구분된 n개의 정수 x1, x2, ..., xn을 출력한다. 모든 i에 대해 조건 1 ≤ xi ≤ 109가 성립해야 하며, 모든 도시 쌍 (u, v)에 대해 조건 |xu - xv| ≤ 1은 u와 v를 연결하는 도로가 있을 때, 그리고 그럴 때에만 성립해야 한다.
4 4
1 2
1 3
1 4
3 4
YES
2 3 1 1
4 3
1 2
1 3
1 4
NO5 10
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
5 4
YES
1 1 1 1 1 첫 번째 예제에서는 x1 = 2, x2 = 3, x3 = x4 = 1이 유효한 표식 부여이다. 실제로 (3, 4), (1, 2), (1, 3), (1, 4)는 표식의 차이가 1보다 크지 않은 유일한 도시 쌍들이며, 이들은 정확히 Bankopolia의 도로들이다.
두 번째 예제에서는 모든 도시 쌍의 표식 차이가 1보다 크지 않으며, 모든 도시 쌍을 연결하는 도로가 있다.
마지막 예제에서는 주어진 제약 조건을 만족하는 표식 부여를 구성할 수 없다.