Description
定义两个正整数x和y之间的距离d(x,y)为将x变成y所需的最少操作次数,每次操作可以乘一个素数或者除一个素数,先给出一个集合S(初始为空),有以下三个操作
I x:将x加入到集合S中(如果S中已经有x则忽略此操作)
D x:将x从集合S中删去(如果S没有x则忽略次操作)
Q x:从集合S中找到一个z使得d(x,z)最小,输出最小d(x,z)(如果S是空集则输出-1)
Input
多组用例,每组用例首先输入一整数q表示操作数,之后q行每行一个字符一个整数x表示一次操作,以m=0结束输入(1<=q<=50000,1<=x<=1000000)
Output
对于每次查询操作,输出d(x,z)最小值,如果S是空集则输出-1
Sample Input
12
I 20
I 15
Q 30
I 30
Q 30
D 10
Q 27
I 15
D 15
D 20
D 30
Q 5
0
Sample Output
Case #1:
1
0
3
-1
http://blog.csdn.net/lyy289065406/article/details/6645854
网上应该有很多题解的,在网上找找,可能介绍的比较详细