結果
問題 |
No.16 累乗の加算
|
ユーザー |
|
提出日時 | 2015-06-21 10:42:16 |
言語 | PHP (843.2) |
結果 |
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 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 14 |
コンパイルメッセージ
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);