結果
| 問題 |
No.148 試験監督(3)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-02-13 09:43:22 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 698 ms / 1,000 ms |
| コード長 | 1,722 bytes |
| コンパイル時間 | 986 ms |
| コンパイル使用メモリ | 109,692 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-12 02:15:29 |
| 合計ジャッジ時間 | 6,227 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 12 |
ソースコード
import std.bigint,std.conv,std.stdio,std.string;int M=10^^9+7,S=2000000;long y,z,a,b,e;
void i(long n){y=1;for(e=M-2;e;e/=2,n=n*n%M)if(e&1)y=y*n%M;}
void f(int n){
if(n>M/2){
f(M-1-n);i(z);z=n%2?y:M-y;
}else{
z=0;foreach(j;0..5)z=z<<6|
` !B=0C7/<4.V2V27-.^Y,'HKAMQ%M^!9)^4I94!^%%E5Y?T=19Q\AN/ _ #LDGF$!,F!*&U)$COW,R,_QD<[=5B@;?!1OGT;@K)(_ K",F.32="G7PZUN1CPSE$ Z6-+M8OA-G"I0M<H-AP80^?!H9MS#BV[,MJSL"%*8Y-44EK#E20SLP+V3JBX@/#5D&XAC>2RL+ZA ,BC6*V;7J?O:-;Z*UFC(FT[I0CKYMS9%(!W5#6R8@*$15VW3E4:WN"%#AS_A%"K917"TTF-0S.1JI2,HZ V3?27W =19)+(JG:7X1*!I;>@;<.:BSJ2:LQN)>E*F$:.@!C]#E$QX7F-4>)@IVNYT=]K=%D87$Y-(7>F58! %\S!/E&?O30]LA:>$H]$S];RGHNXU+K0=A;2KRX,L2[IQ4U1^H90UC#]3^J+H^404U;K\$^?+-#' (7@I+>H4W-3R1J+7U!7R\TLGC="&C #C&2O"#@5-O;3:-(OEEH2)WH#+%./FJ]A-[^!RF?MAW)+,GK,>L/.,.M>V0?/F=5O'9QPO=Q5_5S\L))3RP"T\L*0D6-&[@1I0!B>^.A6FH<M9%#%K%^*&X6=$(&YF!J7-_(5UI890&X>R$PL@N&LO,!&)(7Z4.]&2&=+9N<DA J($XD\C.J_I5#XC3R#Q3VKXH4W,]W>ODXZ3+6LV]?UCMNI#..]F8_OK.)CWZ$[$#DB:W6I'FKM*)=V4X$"4^1V;<+TB;@*5:F7285GTL&%H)$&]+Z;<+R+-A6>&1Y^'J) M1U0')B<%*MN%C)G,+CC#!V*QT5I9,><,&R!C $:3O2%@<?'=B]3_@PG<(E8.3S O0;L3A@2:]PWBE3FMXZ;0MU8>PHQX,'47 E $K*G_=JH<W.Q@768$$]A?+1X]4X/P&YP5[O<Q+H?!ZMS+J(VEWITE(6!ISS;%2 MMF.7P&HX#^OC39#0R&WXA8- &.%*NIY8VJ9AH9\I%\9(7@>#D;X7$P%^K9ED'Z2W302X#&T'X#T4,QKOC/[8$+GIE+;-05]<2W)Z_MU14<358*6YBK@C?4KX/_'>,(#.PP<CAX/JE,>-#R(ZH0G2;03:/K> 9N?O9&[#LZ$)1<\7J:7%,:YVC\;DU,DG!)6]"?@\,H/Z&MWL 'Y09<==3;08(/#:&EA$UX_L]JV[V,7/CJX[:795-/K# _,N+V/=0%Z:F6LC(<.=HI^&K51MS1J!E3I[0 0KKJ\/!C33',Z@]H5"8@ZKM<=;`
[n/S*5+j]-32;for(;n%S;)z=z*n--%M;
}
}
void main(){foreach(t;0..readln.chomp.to!int){
auto s=readln.split;BigInt C=s[0],P=s[1],r=C+1-P,l=r-P;a=0;
if(l>=0&&l/M==r/M){
f(r%M);a=z;f(l%M);i(z);a=a*y%M;
}
a.writeln;
}}