C - (Many Queries)^{-1}

2 secs 1024 MB
uni_kakurenbo's icon uni_kakurenbo

マルチテストについての説明はこちら (サンプル問題を確認されていない方のみお読みください。)


配点:100100

解説が見れないのでミラーを貼ります:Editorial

問題文

整数の変数 xx があり,はじめ x=0x = 0 です.

MojaMoja 君は qq 個のクエリを順に処理しました.
k(1kq)k \scriptsize \; (1 \leq k \leq q) 番目のクエリは以下です:

  • xx の値を x+(3kmod998244353)x + (3^k \bmod 998244353) で置き換える.

また,qq 個のクエリをすべて処理した後,MojaMoja 君は xx の値を出力しました.

MojaMoja 君の出力した値は XX だったそうです.
qq を求めてください.

なお,この問題の制約において答えは一意に定まることを保証します.

制約

  • 1Φ1051 \leq \Phi \leq 10^5
  • 0X<2450 \leq X < \bold{2^{45}}
  • XX は整数
  • qq 個のクエリを順に処理することで x=Xx=X を得られるような非負整数 qq が存在する

入力

各テストケースの入力は,それぞれ以下の形式で与えられる:

XX

出力

答えを出力せよ.

サンプル

入力例1
1
363
出力例1
5

q=5q = 5 のとき,xx の値は 0+313+3212+3339+34120+353630 \xrightarrow{+3^1} 3 \xrightarrow{+3^2} 12 \xrightarrow{+3^3} 39 \xrightarrow{+3^4} 120 \xrightarrow{+3^5} 363 と推移します.


入力例2
3
0
7016566358771
15664562761879
出力例2
0
14142
31415

Submit


Go (1.21)