만드는 중입니다

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

선 그래프

시간 제한5초메모리 제한512 MB

요약
단순 무방향 그래프 G와 정수 k가 주어질 때, L_k(G)에서 최대 클리크의 정점 수와 그 개수를 1000000007로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

유형
그래프, 조합론, 수학
정답자
아직 제출이 없습니다

문제

작년에 Rounddog는 꽤 어려운 문제들이 나온 대회에 참가했는데, 선 그래프 문제를 풀지 못했다. 그래서 최근 그는 선 그래프를 더 깊이 공부하기로 했다.

그래프 이론에서 단순 무향 그래프 GG의 선 그래프 L(G)L(G)는 GG에 있는 임의의 두 간선 사이의 인접 관계를 나타내는 또 다른 단순 무향 그래프이다. 정확히 말하면, 자기 루프나 다중 간선이 없는 무향 그래프 GG에 대해 선 그래프 L(G)L(G)는 다음 조건을 만족하는 그래프이다.

  • L(G)L(G)의 각 정점은 GG의 간선 하나를 나타낸다.
  • L(G)L(G)의 두 정점은 대응하는 두 간선이 GG에서 공통 끝점을 가질 때, 그리고 그때에만 인접한다.

단순 무향 그래프 GG가 주어지면, Rounddog의 연구 목표는 L(G)L(G)의 최대 클리크를 찾는 것이다. 그는 이 연구 결과의 일부를 여러분을 위한 문제로 만들었다.

이 문제에서는 단순 무향 그래프 GG와 작은 양의 정수 kk가 주어진다. L0(G)=GL_0(G) = G이고, 각 양의 정수 ss에 대해 Ls(G)=L(Ls−1(G))L_s(G) = L(L_{s-1}(G))라고 하자. Lk(G)L_k(G)의 모든 최대 클리크를 찾은 뒤, Lk(G)L_k(G) 최대 클리크의 정점 수와 서로 다른 최대 클리크의 개수를 1 000 000 007로 나눈 나머지를 Rounddog에게 알려 주어야 한다.

여기서 무향 그래프의 정점 부분집합은, 그 안의 임의의 두 정점 사이에 간선이 있을 때 클리크라고 한다. 최대 클리크는 정점 수가 가능한 한 가장 많은 클리크이다.

입력

입력에는 여러 개의 테스트 케이스가 포함되며, 첫 줄에는 테스트 케이스의 개수 TT (1≤T≤10001 \le T \le 1000)가 하나의 정수로 주어진다.

각 테스트 케이스의 첫 줄에는 세 정수 nn (1≤n≤100 0001 \le n \le 100\,000), mm (0≤m≤200 0000 \le m \le 200\,000), kk (1≤k≤41 \le k \le 4)가 주어진다. 이들은 주어진 단순 무향 그래프 GG의 정점 수와 간선 수, 그리고 선 그래프 연산을 반복하는 횟수이다.

이어서 mm개의 줄이 주어지며, 그래프의 모든 간선을 나타낸다. 각 줄에는 두 정수 uu와 vv (1≤u,v≤n1 \le u, v \le n, u≠vu \ne v)가 주어지고, 이는 정점 uu와 vv 사이의 간선을 뜻한다.

모든 테스트 케이스에서 nn의 합은 2 000 000을 넘지 않고, mm의 합은 3 000 000을 넘지 않는다. 또한 각 테스트 케이스의 그래프에는 자기 루프와 다중 간선이 없다.

출력

각 테스트 케이스에 대해, 최대 클리크의 정점 수와 서로 다른 최대 클리크의 개수를 1 000 000 007로 나눈 나머지를 공백으로 구분하여 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    3
    5 0 4
    5 4 1
    1 2
    1 3
    1 4
    1 5
    5 4 4
    1 2
    1 3
    1 4
    1 5
    
    예상 출력
    0 1
    4 1
    6 12