만드는 중입니다

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

미스터리 그래프 색칠

면접 대비

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

요약
0번부터 V-1번 정점을 이미 칠해진 이웃이 쓰지 않은 가장 작은 색으로 칠하고 색 수와 색칠 결과, 반복 횟수를 출력합니다.
난이도

쉬움10점 중 3점

유형
그래프, 그리디, 시뮬레이션
정답자
아직 제출이 없습니다

문제

정점 VV개와 간선 EE개로 이루어진 무방향 그래프 GG가 있다. 각 정점에 00 이상 XX 미만의 정수를 하나씩 붙이되, 한 간선의 두 끝점에는 서로 다른 수가 붙어야 한다. 이 수를 색이라고 부른다.

조건을 만족하는 색칠은 여러 가지이므로, 답은 아래 절차가 만드는 색칠 하나로 정한다. 절차는 정점을 00번부터 V−1V-1번까지 차례로 보면서, 이미 색이 정해진 이웃이 쓰지 않은 색 중 가장 작은 색을 그 정점에 붙인다. 절차는 실행하는 동안 counter 변수를 아래와 같이 늘린다.

counter = 0
color[0..V-1] = -1
for i = 0 to V-1:
    used = empty set
    for each j in adj[i]:
        counter = counter + 1
        if color[j] != -1:
            add color[j] to used
    for c = 0 to V-1:
        counter = counter + 1
        if c is not in used:
            color[i] = c
            break

adj[i]는 정점 ii와 간선으로 이어진 정점의 목록이다. 이웃을 정확히 한 번씩 세므로 목록의 순서는 색칠 결과도, counter의 최종 값도 바꾸지 않는다. XX는 절차가 쓴 색의 개수, 곧 color 값의 최댓값에 11을 더한 값이다.

입력

첫째 줄에 VV와 EE가 공백으로 구분되어 주어진다. 다음 EE개 줄에는 간선의 두 끝점을 나타내는 aa와 bb가 주어진다.

  • 1≤V≤10001 \le V \le 1000
  • 0≤E≤1000000 \le E \le 100000
  • 모든 간선 (a,b)(a, b)에 대해 a≠ba \ne b이고, 0≤a<V0 \le a < V, 0≤b<V0 \le b < V이다.
  • 같은 간선은 두 번 이상 주어지지 않는다. (a,b)(a, b)와 (b,a)(b, a)는 같은 간선이다.

출력

첫째 줄에 XX를 출력한다. 둘째 줄에는 00번 정점부터 V−1V-1번 정점에 붙인 색을 공백 하나로 구분해 출력한다. 셋째 줄에는 The value of counter is: 다음에 공백 하나를 두고 counter의 최종 값을 출력한다.

예제6

  1. 예제 1

    입력
    4 5
    0 1
    0 2
    0 3
    1 2
    2 3
    
    예상 출력
    3
    0 1 2 1
    The value of counter is: 18
    
  2. 예제 2

    입력
    1 0
    
    예상 출력
    1
    0
    The value of counter is: 1
    
  3. 예제 3

    입력
    2 0
    
    예상 출력
    1
    0 0
    The value of counter is: 2
    
  4. 예제 4

    입력
    2 1
    0 1
    
    예상 출력
    2
    0 1
    The value of counter is: 5
    
  5. 예제 5

    입력
    3 3
    2 1
    2 0
    1 0
    
    예상 출력
    3
    0 1 2
    The value of counter is: 12
    
  6. 예제 6

    입력
    5 10
    0 1
    0 2
    0 3
    0 4
    1 2
    1 3
    1 4
    2 3
    2 4
    3 4
    
    예상 출력
    5
    0 1 2 3 4
    The value of counter is: 35