CF1379B Dubious Cyrpto
题目描述
Pasha 喜欢给他的朋友发送严格正整数。Pasha 很注重安全,因此当他想要发送一个整数 $n$ 时,他会用如下方式加密:他选择三个整数 $a$、$b$ 和 $c$,使得 $l \leq a, b, c \leq r$,然后他计算加密值 $m = n \cdot a + b - c$。
不幸的是,有人截获了 $l$、$r$ 和 $m$ 的值。现在,是否有可能根据这些信息恢复出原始的 $a$、$b$ 和 $c$?更正式地说,你需要找到任意一组 $a$、$b$ 和 $c$,使得:
- $a$、$b$ 和 $c$ 是整数,
- $l \leq a, b, c \leq r$,
- 存在一个严格正整数 $n$,使得 $n \cdot a + b - c = m$。
输入格式
第一行包含一个整数 $t$($1 \leq t \leq 20$),表示测试用例的数量。接下来的 $t$ 行,每行描述一个测试用例。
每个测试用例包含三个整数 $l$、$r$ 和 $m$($1 \leq l \leq r \leq 500\,000$,$1 \leq m \leq 10^{10}$)。保证对于每个测试用例,至少存在一组解。
输出格式
对于每个测试用例,输出三个整数 $a$、$b$ 和 $c$,满足 $l \leq a, b, c \leq r$,并且存在严格正整数 $n$ 使得 $n \cdot a + b - c = m$。保证至少存在一组解,如果有多组解,你可以输出任意一组。
说明/提示
在第一个样例中,可以取 $n = 3$,此时 $n \cdot 4 + 6 - 5 = 13 = m$。其他可能的解包括:$a = 4$,$b = 5$,$c = 4$($n = 3$ 时);$a = 5$,$b = 4$,$c = 6$($n = 3$ 时);$a = 6$,$b = 6$,$c = 5$($n = 2$ 时);$a = 6$,$b = 5$,$c = 4$($n = 2$ 时)。
在第二个样例中,唯一可能的情况是 $n = 1$:此时 $n \cdot 2 + 2 - 3 = 1 = m$。注意,$n = 0$ 不可行,因为 $n$ 必须是严格正整数。
由 ChatGPT 4.1 翻译