結果
問題 | No.16 累乗の加算 |
ユーザー |
![]() |
提出日時 | 2016-09-12 21:56:04 |
言語 | Fortran (gFortran 14.2.0) |
結果 |
AC
|
実行時間 | 7 ms / 5,000 ms |
コード長 | 796 bytes |
コンパイル時間 | 1,877 ms |
コンパイル使用メモリ | 32,384 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-26 05:16:35 |
合計ジャッジ時間 | 2,567 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 14 |
ソースコード
program mainimplicit noneinteger*8::x,N,total,iinteger*8,allocatable::a(:)integer::memo(0:100000000)integer,parameter::modulo=1000003data memo/100000001*0/,total/0/read *,x,Nallocate(a(N))read *,amemo(0) = 1memo(1) = xdo i=1,Ntotal = total + power(x,a(i),memo)end doprint '(i0)',MOD(total,modulo)containsrecursive function power(x,p,memo) result(y)integer*8::x,yinteger*8::pinteger,parameter::modulo=1000003integer::memo(0:100000000)if(memo(p).ne.0) theny = memo(p)else if(MOD(p,2).eq.0) theny = mod(power(x,p/2,memo)*power(x,p/2,memo),modulo)memo (p) = yelsey = mod(power(x,p/2+1,memo)*power(x,p/2,memo),modulo)memo (p) = yend ifend function powerend program