結果
問題 | No.147 試験監督(2) |
ユーザー | ciel |
提出日時 | 2015-02-09 17:57:36 |
言語 | Ruby (3.3.0) |
結果 |
RE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 722 bytes |
コンパイル時間 | 88 ms |
コンパイル使用メモリ | 7,680 KB |
実行使用メモリ | 124,464 KB |
最終ジャッジ日時 | 2024-06-23 16:31:13 |
合計ジャッジ時間 | 5,563 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | RE | - |
testcase_01 | RE | - |
testcase_02 | RE | - |
testcase_03 | RE | - |
コンパイルメッセージ
Syntax OK
ソースコード
IO.popen('g++ -xc++ -O2 -oZ - -lgmpxx -lgmp','w'){|io|io.puts DATA.read} IO.popen('./Z','r+'){|io|io.write $<.read;io.close_write;puts io.read} File.unlink('Z') __END__ #include<iostream> #include<valarray> #include<gmpxx.h> using namespace std; typedef valarray<long long>V; int M=1000000007; V z(4); V &g(const V &_x,const V &_y){ for(int i=0,j;i<2;i++)for(j=0;j<2;j++)z[i*2+j]=(_x[slice(i*2,2,1)]*_y[slice(j,2,2)]).sum()%M; return z; } main(){ long long T,r=1,c,z; for(cin>>T;T--;){ mpz_class d; cin>>c>>d; if(d>M-1)d%=M-1; V x(4),e(4); x[0]=x[1]=x[2]=e[0]=e[3]=1; for(c--;c;x=g(x,x),c>>=1)if(c&1)e=g(e,x); c=e.sum()%M; for(z=1;d!=0;c=c*c%M,d>>=1)if((d&1)!=0)z=z*c%M; r=r*z%M; } cout<<r<<endl; }