結果
問題 | No.16 累乗の加算 |
ユーザー | 綾地寧々 |
提出日時 | 2015-06-21 10:42:16 |
言語 | PHP (8.3.4) |
結果 |
AC
|
実行時間 | 3,203 ms / 5,000 ms |
コード長 | 1,108 bytes |
コンパイル時間 | 291 ms |
コンパイル使用メモリ | 32,016 KB |
実行使用メモリ | 226,100 KB |
最終ジャッジ日時 | 2024-06-26 04:59:01 |
合計ジャッジ時間 | 31,255 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 498 ms
60,620 KB |
testcase_01 | AC | 502 ms
60,364 KB |
testcase_02 | AC | 3,203 ms
226,100 KB |
testcase_03 | AC | 2,821 ms
209,820 KB |
testcase_04 | AC | 2,469 ms
186,320 KB |
testcase_05 | AC | 2,924 ms
217,952 KB |
testcase_06 | AC | 2,795 ms
211,684 KB |
testcase_07 | AC | 1,924 ms
158,584 KB |
testcase_08 | AC | 2,987 ms
217,968 KB |
testcase_09 | AC | 1,559 ms
144,876 KB |
testcase_10 | AC | 1,463 ms
131,172 KB |
testcase_11 | AC | 3,074 ms
225,836 KB |
testcase_12 | AC | 3,043 ms
225,548 KB |
testcase_13 | AC | 39 ms
31,548 KB |
コンパイルメッセージ
No syntax errors detected in Main.php
ソースコード
<?php $start = microtime(TRUE); define("EXP_MAX", 100000000); define("RESULT_DIV_VALUE", 1000003); list($x, $n) = explode(" ",trim(fgets(STDIN))); $exp_member_array = explode(" ",trim(fgets(STDIN))); $exp_sum_value = array(); $exp_sum_value[1] = intval($x); $gmp_pow_temp = gmp_init($exp_sum_value[1]); for ( $i=2; $i<=EXP_MAX; $i<<=1 ) { $gmp_pow_temp = gmp_pow($gmp_pow_temp, 2); $exp_sum_value[$i] = gmp_intval(gmp_div_r($gmp_pow_temp, gmp_init(RESULT_DIV_VALUE))); } $exp_sum_value_max_index = ($i>>1); $gmp_sum = 0; foreach ( $exp_member_array as $index => $exp ) { $i = $exp_sum_value_max_index; $gmp_sum_temp = gmp_init(1); while ( $exp > 0 ) { while ( $exp >= $i ) { $exp -= $i; $gmp_sum_temp = gmp_mul($gmp_sum_temp, $exp_sum_value[$i]); } $i >>= 1; } $gmp_sum_temp = gmp_div_r($gmp_sum_temp, gmp_init(RESULT_DIV_VALUE)); $gmp_sum += gmp_intval($gmp_sum_temp); $gmp_sum %= RESULT_DIV_VALUE; } echo gmp_strval($gmp_sum).PHP_EOL; $exec = microtime(TRUE) - $start; fprintf(STDERR, "EXEC: {$exec} seconds\n"); fprintf(STDERR, "MEM: %d KiB\n", memory_get_peak_usage(TRUE)/1024);