만드는 중입니다

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

Div

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

요약
양의 정수 x 중에서 c_i x^(a_i)의 합이 1 + x + ... + x^(m-1)로 나누어떨어지는 x의 개수를 구합니다. 무한히 많으면 -1을 출력합니다.
난이도

어려움10점 중 9점

유형
수학, 정수론
정답자
아직 제출이 없습니다

문제

x>0x > 0인 정수 xx 중에서 c0xa0+c1xa1+cdots+cn−1xan−1c_0 x^{a_0} + c_1 x^{a_1} + \\cdots + c_{n-1} x^{a_{n-1}}이 1+x+cdots+xm−11 + x + \\cdots + x^{m-1}로 나누어떨어지는 값의 개수를 구하라.

입력

첫 줄에 테스트 케이스의 수 tt (1letle1051 \\le t \\le 10^5)가 주어진다. 각 테스트 케이스는 두 정수 nn, mm (1lenle1051 \\le n \\le 10^5, 1lemle1091 \\le m \\le 10^9)으로 시작한다. 이어서 nn개의 줄에 정수 쌍 cic_i, aia_i가 한 줄에 하나씩 주어진다. (∣ci∣=1|c_i| = 1, 0leaile1090 \\le a_i \\le 10^9) 모든 테스트 케이스의 nn을 합하면 10510^5를 넘지 않는다.

출력

각 테스트 케이스마다 조건을 만족하는 정수 x>0x > 0의 개수를 출력한다. 개수가 무한하면 −1-1을 출력한다.

예제1

  1. 예제 1

    입력
    3
    5 2
    1 0
    1 0
    1 0
    1 0
    1 0
    5 3
    -1 2
    -1 1
    -1 0
    1 1
    -1 1
    12 3
    -1 0
    -1 7
    1 8
    1 8
    -1 4
    -1 6
    1 8
    1 2
    1 5
    1 2
    -1 9
    1 5
    
    예상 출력
    1
    -1
    2