D - D-infinite 解説 /

実行時間制限: 2 sec / メモリ制限: 1024 MiB

配点 : 800

プログラミングコンテストでは,指数的に増加する関数のオーダーを見積もる技術も大事です.

問題文

正整数 a, b, c に対し,a 個の ab 個の bc 個の c からなる文字列のうち,同じ文字が隣接しないものの個数を f(a,b,c) とおく.

正整数 A, B, C が与えられる.正整数 n に関する極限 z = \displaystyle\lim_{n\to\infty} \frac{\log(1 + f(An,Bn,Cn))}{n} を以下の形式で求めよ.

この極限は収束し,\gcd(p, q) = 1 である正整数 p, q によって z = \log(p/q) と一意に書けることが証明できる.p - q r998244353 で割り切れ 0 \le r < 998244353 である整数 r (この問題の制約によって一意に定まることが証明できる) を出力せよ.

制約

  • 1 \le A, B, C \le 10^6

入力

入力は以下の形式で標準入力から与えられる.

A B C

出力

r を出力せよ.


入力例 1

1 1 1

出力例 1

8

f(1,1,1) = 6,\, f(2,2,2) = 30,\, f(3,3,3) = 174,\, \ldots であり,z = \log(8) となる.


入力例 2

2 3 4

出力例 2

751957674

z = \log(524288/3125) となる.