아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

제한된 배열

시간 제한4초메모리 제한256 MB

요약
주어진 모든 쌍에 대해 a[x]+1 ≡ a[y] (mod M)을 만족하는 정수 배열이 존재하는 M을 n 이하에서 모두 찾아 개수와 함께 출력한다.
난이도

어려움10점 중 8점

유형
그래프, 유니온 파인드, 정수론, 수학
정답자
아직 제출이 없습니다

문제

양의 정수 nn이 주어진다. 다음 조건을 만족하는 정수 배열 a[1..n]a[1..n]이 존재하는 정수 MM (1≤M≤n1 \le M \le n)의 개수를 구하여라. a[xi]+1≡a[yi](modM),1≤i≤qa[x_i] + 1 \equiv a[y_i] \pmod{M}, \quad 1 \le i \le q

입력

첫째 줄에 두 정수 nn과 qq가 주어진다. nn은 배열의 크기, qq는 조건의 개수이다 (1≤n,q≤1061 \le n, q \le 10^6).

다음 qq개의 줄에 각각 두 정수 xix_i와 yiy_i가 주어진다. 이는 ii번째 조건의 두 인덱스이다 (1≤xi,yi≤n1 \le x_i, y_i \le n).

출력

첫째 줄에 가능한 MM의 개수 tt를 출력한다. 둘째 줄에 가능한 MM의 값 tt개를 오름차순으로 출력한다.

예제4

  1. 예제 1

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

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

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

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