結果

問題 No.16 累乗の加算
ユーザー tanson
提出日時 2025-09-02 01:31:55
言語 Standard ML
(MLton 20210117)
結果
WA  
実行時間 -
コード長 784 bytes
コンパイル時間 6,730 ms
コンパイル使用メモリ 689,788 KB
実行使用メモリ 7,720 KB
最終ジャッジ日時 2025-09-02 01:32:03
合計ジャッジ時間 5,498 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 4 WA * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

fun readInt () =
    valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn)

        
fun mod_pow x n m =
    let
        fun mod_pow_aux _ 0 = 1
          | mod_pow_aux xx nn = 
            if nn mod 2 = 1 then (xx mod m) * mod_pow_aux xx (nn - 1)
            else mod_pow_aux ((xx * xx) mod m) (nn div 2)
    in
        (mod_pow_aux x n) mod m
    end


val () =
    let
        val x = Int.toLarge (readInt ())
        val n = readInt ()
        val a_s = List.tabulate (n, fn _ => Int.toLarge (readInt ()))

        val m = Int.toLarge 1000003

        val ans =
            List.foldl
                (fn (a, acc) =>
                    mod_pow x a m + acc)
                (Int.toLarge 0)
                a_s
    in
        print (LargeInt.toString ans ^ "\n")
    end
0