AT_stpc2025_2_g Team Division

题目描述

给定正整数 $A, B, L, R$。 对于 $x = L, L+1, \dots, R$,定义 $f(x)$ 为如下问题的答案: > 有一次程序设计竞赛,有 $x$ 名选手参加。 > > 现需将这 $x$ 名选手分成若干支每支为 $A$ 人或 $B$ 人的队伍,每位选手必须恰好分入一支队伍。 > > 求所有可能分组方式下,队伍的**最小数量**。如果无法完成分组,则答案为 $10^{100}$。 请你计算 $\displaystyle\max_{L \le x \le R} f(x)$。如果最大值为 $10^{100}$,请输出 $-1$。 有 $T$ 组测试数据,对每组分别输出结果。

输入格式

输入格式如下: > $T$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ 其中,$\mathrm{case}_i$ 表示第 $i$ 组测试数据。每组测试数据输入一行,包含 $A\ B\ L\ R$。

输出格式

对于每组测试数据,输出一行答案。

说明/提示

### 样例解释 1 对于第一组数据,当参与人数为 $1$ 时,无法分成 $2$ 人或 $3$ 人队伍。 对于第二组数据,当参与人数为 $19$ 时,可以分成 $3$ 个 $3$ 人队伍和 $2$ 个 $5$ 人队伍,此时总队数为 $5$。对于所有 $10$ 到 $20$ 的人数,都可以分成不超过 $5$ 个队伍,所以答案为 $5$。 ### 数据范围 - 所有输入均为整数 - $1 \leq T \leq 10^5$ - $1 \leq A, B \leq 10^9$ - $1 \leq L \leq R \leq 10^{18}$ 由 ChatGPT 5 翻译