結果
| 問題 | 
                            No.16 累乗の加算
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 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 | 
ソースコード
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