結果
| 問題 |
No.2742 Car Flow
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-04-21 01:56:31 |
| 言語 | OCaml (5.2.1) |
| 結果 |
AC
|
| 実行時間 | 31 ms / 2,000 ms |
| コード長 | 714 bytes |
| コンパイル時間 | 1,923 ms |
| コンパイル使用メモリ | 21,572 KB |
| 実行使用メモリ | 7,296 KB |
| 最終ジャッジ日時 | 2024-10-13 00:24:33 |
| 合計ジャッジ時間 | 4,608 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 50 |
ソースコード
Scanf.scanf "%d" (fun n ->
let z = 998244353 in
let ( *@) a b = (a * b) mod z in
let ( /@) a b =
let extgcd x y =
let rec eg r0 r1 a0 a1 =
if r1 = 0 then a0 else
let q1 = r0 / r1 in
eg r1 (r0 mod r1) a1 (a0 - q1 * a1)
in
eg x y 1 0
in
let inv x y = (* 1/x in mod y *)
let c = extgcd x y in
if c < 0 then c + y else c
in
a *@ inv b z
in
let a = Array.init n (fun _ -> Scanf.scanf " %d" (fun a -> a)) in
let sum = Array.fold_left (+) 0 a in
let sum = if sum * 2 >= n then n - sum else sum in
Printf.printf "%d\n" @@ (sum /@ n)
)