CF317A Perfect Pair

题目描述

我们称一对整数为 $m$-完美对,如果这对数中至少有一个数大于等于 $m$。例如,(3, 3) 和 (0, 2) 是 2-完美对,而 (-1, 1) 不是。 现在黑板上写有两个整数 $x$ 和 $y$。你可以进行如下操作:擦去其中一个数,并将其替换为两个数的和 $(x+y)$。 你需要求出,最少需要进行多少次这样的操作,才能使这对数成为 $m$-完美对。

输入格式

输入包含一行,三个整数,分别为 $x$、$y$ 和 $m$,满足 $-10^{18} \le x, y, m \le 10^{18}$。 请不要在 C++ 中使用 %lld 格式读取或输出 64 位整数。推荐使用 cin、cout 流或 %I64d 格式。

输出格式

输出所需操作的最小次数。如果无法将给定的整数对变为 $m$-完美对,则输出 $-1$。

说明/提示

在第一个样例中,可以进行如下操作:(1, 2) → (3, 2) → (5, 2)。 在第二个样例中:(-1, 4) → (3, 4) → (7, 4) → (11, 4) → (15, 4)。 在第三个样例中,$x$ 和 $y$ 无法变为正数,因此不存在合适的操作序列。 由 ChatGPT 5 翻译