Nothing Everything

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

요약
새 정점을 추가할 때마다 간선을 하나도 잇지 않거나 이전의 모든 정점과 잇는 두 연산만으로 주어진 무방향 그래프를 만들 수 있는지 판별하고, 가능하면 연산 순서를 출력한다.
난이도

보통10점 중 6점

유형
그래프, 정렬, 그리디, 구현
정답자
아직 제출이 없습니다

문제

정점이 NN개이고 간선이 MM개인 무방향 그래프 GG가 주어진다. 처음에 그래프에는 11번 정점이 존재한다. 다음 두 연산을 N−1N - 1번 사용해 그래프 GG를 만들 수 있는지 판별하고, 만들 수 있다면 연산 과정을 순서대로 출력하라.

  • ii번째 연산이 Nothing이라면, i+1i+1번 정점을 추가한다. i+1i+1번 정점에는 아무런 간선을 잇지 않는다.
  • ii번째 연산이 Everything이라면, i+1i+1번 정점을 추가한다. i+1i+1번 정점에는 ii번 이하의 모든 정점과 간선을 잇는다.

입력

첫 번째 줄에 NN, MM이 공백으로 구분되어 주어진다.

두 번째 줄부터 MM개의 줄에 걸쳐 간선의 정보가 주어진다. 그중 ii번째 줄에는 a_ia\_i와 b_ib\_i가 공백으로 구분되어 주어진다. 이는 그래프 GG에 a_ia\_i번 정점과 b_ib\_i번 정점을 잇는 간선이 존재한다는 의미이다. 그래프 GG에 중복된 간선은 존재하지 않는다.

출력

만약 두 연산으로 주어진 그래프 GG를 만들 수 있다면 첫 번째 줄에 길이가 N−1N - 1이고 N 혹은 E로만 구성된 문자열을 출력한다. 이는 jj번째 문자가 N이라면 jj번째 연산이 Nothing임을, jj번째 문자가 E라면 jj번째 연산이 Everything임을 의미한다. 가능한 연산 과정이 여러 가지라면 그중 아무거나 하나를 출력한다.

만약 두 연산으로 주어진 그래프 GG를 만들 수 없다면 -1을 대신 출력한다.

제한

  • 2≤N≤100,0002 \le N \le 100\\,000
  • 0≤M≤min⁡(N(N−1)2,100,000)0 \displaystyle \le M \le \min \left( \frac{N(N-1)}{2}, 100\\,000 \right)
  • 1≤a_i,b_i≤N1 \le a\_i, b\_i \le N
  • a_i≠b_ia\_i \neq b\_i

예제3

  1. 예제 1

    입력
    2 0
    
    예상 출력
    N
    
  2. 예제 2

    입력
    3 3
    2 1
    3 2
    1 3
    
    예상 출력
    EE
    
  3. 예제 3

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