#P16385. [2024年南京集训]整除(div)

[2024年南京集训]整除(div)

题目描述

给定一个正整数 mm,以及 nn 组整数参数

(ci,ai),(c_i,a_i),

其中

ci=1,ai0.|c_i|=1,\qquad a_i\ge 0.

求有多少个正整数 xx,满足

i=1ncixai\sum_{i=1}^{n}c_i x^{a_i}

能被

i=0m1xi\sum_{i=0}^{m-1}x^i

整除。

也就是说,需要存在一个整数 qq,使得

i=1ncixai=qi=0m1xi.\sum_{i=1}^{n}c_i x^{a_i} = q\sum_{i=0}^{m-1}x^i.

可能存在无穷多个满足条件的正整数 xx

本题包含多组测试数据。

输入格式

第一行包含一个整数 TT,表示测试数据组数。

对于每组测试数据:

  • 第一行包含两个整数 n,mn,m
  • 接下来 nn 行,每行包含两个整数 ci,aic_i,a_i

保证

ci=1,0ai109.|c_i|=1,\qquad 0\le a_i\le 10^9.

并且所有测试数据的 nn 之和满足

n105.\sum n\le 10^5.

输出格式

输出到文件 div.out 中。

对于每组测试数据:

  • 如果有无穷多个正整数 xx 满足条件,输出一行:

    -1
    
  • 否则,先输出一行一个整数,表示解的数量;再输出一行,按照从小到大的顺序输出所有解。

  • 如果无解,第二行仍需要输出一个空行。

保证所有测试数据中解的数量之和不超过 10610^6

样例 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
4
-1
2
2 9

这些样例分别满足子任务 1,2,3,3,4,5,61,2,3,3,4,5,6 的限制。

数据范围与子任务

对于全部测试数据:

1T105,1\le T\le 10^5, 1n105,1\le n\le 10^5, 1m109,1\le m\le 10^9, ci=1,|c_i|=1, 0ai109.0\le a_i\le 10^9.
子任务 n\sum n 不超过 m\sum m 不超过 分值 依赖子任务
1 55 10
2 10210^2 20 1
3 10310^3 10310^3 10 1, 2
4 101410^{14} 1, 2, 3
5 10510^5 10510^5 20
6 101410^{14} 30 1, 2, 3, 4, 5