CF1146D Frog Jumping

题目描述

一只青蛙最初位于数轴上的 $0$ 位置。青蛙有两个正整数 $a$ 和 $b$。从位置 $k$ 出发,青蛙可以跳到 $k+a$ 或 $k-b$。 设 $f(x)$ 表示如果青蛙从不跳到区间 $[0, x]$ 之外的整数,那么它能够到达的不同整数的个数。青蛙不需要一次性访问所有这些整数,也就是说,只要青蛙从 $0$ 出发能够到达某个整数,这个整数就会被计入。 给定一个整数 $m$,求 $\sum_{i=0}^{m} f(i)$,即从 $i=0$ 到 $i=m$ 的所有 $f(i)$ 之和。

输入格式

第一行包含三个整数 $m, a, b$($1 \leq m \leq 10^9, 1 \leq a, b \leq 10^5$)。

输出格式

输出一个整数,表示所求的和。

说明/提示

在第一个样例中,我们需要计算 $f(0)+f(1)+\ldots+f(7)$。有 $f(0) = 1, f(1) = 1, f(2) = 1, f(3) = 1, f(4) = 1, f(5) = 3, f(6) = 3, f(7) = 8$。这些值的和为 $19$。 在第二个样例中,有 $f(i) = i+1$,因此我们要求 $\sum_{i=0}^{10^9} i+1$。 在第三个样例中,无论如何青蛙都无法跳跃。 由 ChatGPT 4.1 翻译