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

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

행렬식의 역습

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

요약
대각선 원소에만 x를 더한 a_i*b_j 형태의 n x n 행렬의 행렬식을 10^9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
수학, 행렬, 조합론, 구현
정답자
아직 제출이 없습니다

문제

Dinara는 정수 xx와 길이 nn인 두 배열 a1,…,ana_1, \dots, a_n, b1,…,bnb_1, \dots, b_n을 가지고 있다. Dinara는 n×nn \times n 행렬 MM을 다음과 같이 만든다.

Mi,j={x+aibjwhen i=jaibjotherwiseM_{i, j} = \left\{\begin{matrix} x + a_i b_j & \mathrm{when}\ i = j \\ a_i b_j & \mathrm{otherwise} \end{matrix}\right.

행렬 MM의 행렬식을 (109+7)(10^9+7)로 나눈 나머지를 구한다.

입력

입력은 여러 테스트 케이스로 이루어지며, 파일의 끝에서 종료된다.

각 테스트 케이스의 첫째 줄에는 두 정수 nn과 xx가 주어진다. 둘째 줄에는 nn개의 정수 a1,…,ana_1, \dots, a_n이 주어진다. 셋째 줄에는 nn개의 정수 b1,…,bnb_1, \dots, b_n이 주어진다.

출력

각 테스트 케이스마다 결과를 나타내는 정수를 한 줄에 출력한다.

제한

  • 1≤n≤1051 \leq n \leq 10^5
  • 0≤x,ai,bi≤1090 \leq x, a_i, b_i \leq 10^9
  • nn의 합은 10610^6을 넘지 않는다.

예제1

  1. 예제 1

    입력
    2 1
    0 0
    0 0
    2 1
    1000000000 1000000000
    1000000000 1000000000
    3 2
    2 3 3
    2 3 3
    
    예상 출력
    1
    99
    96