D - D-infinite
解説
/
/
実行時間制限: 2 sec / メモリ制限: 1024 MiB
配点 : 800 点
プログラミングコンテストでは,指数的に増加する関数のオーダーを見積もる技術も大事です.
問題文
正整数 a, b, c に対し,a 個の a と b 個の b と c 個の 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 r が 998244353 で割り切れ 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) となる.