問題一覧 > 通常問題

No.1019 最小格子三角形

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 13
作問者 : maspy / テスター : beet
8 ProblemId : 4041 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-04-25 10:42:13

問題文

座標平面上の、x,yx,y 座標がともに整数であるような点を格子点といいます。 33 頂点が共に格子点であるような三角形の面積は、必ず 12\frac12 以上になります。 以下、格子点からなる面積 12\frac12 の三角形を最小格子三角形と呼びます。

牛子 さんは最小格子三角形が大好物です。 特に座標の大きなものを見つけたときに、大きな喜びを得ることができます。 牛子 さんが得られる喜びの総和を計算しましょう。

NN を正の整数とするとき、以下の値を計算してください。

  • 33O(0,0),P(p1,p2),Q(q1,q2)O(0,0), P(p_1,p_2), Q(q_1,q_2) が最小格子三角形をなすとき、その喜びを、p1+p2+q1+q2|p_1| + |p_2| + |q_1| + |q_2| で定めます。
  • OPNOP\leqq \sqrt{N} かつ OQNOQ\leqq \sqrt{N} となる最小格子三角形 OPQOPQ に対する喜びの総和を、998244353998244353 で割った余りを答えてください。
同じ三角形(PP, QQ を入れ替えただけのもの)は 11 度しか数えないことに注意してください。

入力

NN

  • NN は正の整数で 1N10121\leqq N\leqq 10^{12} を満たす。

出力

11 行に、喜びの総和を 998244353998244353 で割った余りを出力してください。
最後に改行してください。

サンプル

サンプル1
入力
1
出力
8

例えば P(1,0)P(1,0), Q(0,1)Q(0,1) が最小格子三角形を与えます。 この三角形からは、22 の喜びが得られます。 この三角形を OO を中心に 9090 度ずつ回転させて得られる 44 つの三角形が計算対象となります。

サンプル2
入力
25
出力
1208

例えば P(4,3)P(4,-3), Q(3,2)Q(-3,2) が最小格子三角形を与えます。 この三角形からは、1212 の喜びが得られます。

サンプル3
入力
1000000
出力
741919871

998244353998244353 で割った余りを出力します。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。