CF1182F Maximum Sine

题目描述

给定整数 $a$、$b$、$p$ 和 $q$。定义 $f(x) = \text{abs}(\sin(\frac{p}{q} \pi x))$。 请在 $a \le x \le b$ 的范围内,找到使 $f(x)$ 最大的最小整数 $x$。

输入格式

每个测试点包含多组测试数据。 第一行输入一个整数 $t$($1 \le t \le 100$),表示测试数据的组数。 每组测试数据的第一行包含四个整数 $a$、$b$、$p$ 和 $q$($0 \le a \le b \le 10^{9}$,$1 \le p, q \le 10^{9}$)。

输出格式

对于每组测试数据,输出一个整数 $x$,表示在给定区间内使 $f(x)$ 最大的最小整数。每个答案占一行。

说明/提示

在第一个测试点中,$f(0) = 0$,$f(1) = f(2) \approx 0.866$,$f(3) = 0$。 在第二个测试点中,$f(55) \approx 0.999969$,这是所有可能值中的最大值。 由 ChatGPT 4.1 翻译