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$。