CF773A Success Rate

题目描述

$\textsf{\textup{{\color{red}C}htholly}}$ 有一个 OJ。今天她发现她的提交次数是 $y$,通过次数是 $x$,因此她在 OJ 上的通过率是 $\frac{x}{y}$。 $\textsf{\textup{{\color{red}C}htholly}}$ 在 $[0,1]$ 区间内最喜欢的有理数是 $\frac{p}{q}$。于是她问了你一个问题:至少还要提交多少次代码,才能让通过率变为 $\frac{p}{q}$?

输入格式

输入数据的第一行是测试数据组数 $t$,保证 $1 \le t \le 1000$。 以后 $t$ 行,每行四个整数 $x,y,p,q$,表示一组数据。保证 $0\le x\le y\le {10}^9,\ 0\le p\le q\le {10}^9,\ y,q>0$,$p$ 和 $q$ 互质。 注意,如果你要提供 Hack 数据,那么必须满足 $t \le 5$。

输出格式

对于每组数据,输出一行一个整数,表示能使通过率变为 $\frac{p}{q}$ 的最少还需提交次数。如果无解,输出 `-1`。

说明/提示

对于第一组测试数据,$\textsf{\textup{{\color{red}C}htholly}}$ 可以提交 $4$ 发 AC,通过率变为 $\frac{7}{14}$,也就是 $\frac{1}{2}$。 对于第二组测试数据,$\textsf{\textup{{\color{red}C}htholly}}$ 可以再提交 $10$ 发,其中 $2$ 发 AC,通过率变为 $\frac{9}{24}$,也就是 $\frac{3}{8}$。 对于第三组测试数据,通过率 $\frac{20}{70}$ 已经等于 $\frac{2}{7}$,不需要继续提交。 对于第四组测试数据,因为有未通过的提交记录,不可能使通过率等于 $1$。