Berland 年有 $m$ 月,每月 $d$ 天。一周有 $w$ 天。
若第 $x$ 月的第 $y$ 天和第 $y$ 月的第 $x$ 天是同一个星期,则称 $(x,y)$ 是一对。
求一年有几对。
$$ xd+y \equiv yd+x \pmod w $$
即
$$ (x-y)(d-1) \equiv 0 \Rightarrow (x-y)(d-1) \in w\mathbb{Z} $$
于是有
$$ y-x = \frac{wk}{\gcd(w,d-1)} $$
又 $x < y \leqslant \min(m,d)$,
int main() {
ll ttt = rr();
while (ttt--) {
ll m = rr(), d = rr(), w = rr();
ll g = w / gcd(w, d - 1);
ll max_y = min(m, d) - 1;
ll div = (max_y + 1) / g, mod = (max_y + 1) % g;
ll sum = (div - 1) * div / 2 * g + mod * div;
printf("%lld\n", sum);
}
return 0;
}