結果

問題 No.493 とても長い数列と文字列(Long Long Sequence and a String)
ユーザー convexineqconvexineq
提出日時 2021-02-09 07:58:14
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 86 ms / 800 ms
コード長 863 bytes
コンパイル時間 174 ms
コンパイル使用メモリ 82,292 KB
実行使用メモリ 76,780 KB
最終ジャッジ日時 2024-07-06 13:28:20
合計ジャッジ時間 8,808 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 115
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

from operator import add
k,L,R = map(int,input().split())
k = min(k,60)
a = [0]*61
for i in range(1,61):
a[i] = 2*a[i-1]+len(str(i*i))
if a[k] < R:
print(-1)
exit()
def s(k,x):
v = 0
for i in str(k*k)[:x]: v += int(i) if i != "0" else 10
return v
def p(k,x):
v = 1
for i in str(k*k)[:x]: v *= int(i) if i != "0" else 10
return v
def f(k,R):
g = s if op==add else p
if R <= 1: return max(R,0)
if R == a[k]: return op(2*f(k-1,a[k-1]) if op==add else f(k-1,a[k-1])**2%MOD, g(k,9))
if R <= a[k-1]: return f(k-1,R)
v = a[k-1] + len(str(k*k))
if R <= v: return op(f(k-1,a[k-1]), g(k,R-a[k-1]))
else: return op(op(f(k-1,a[k-1]), g(k,9)), f(k-1,R-v))
MOD = 10**9+7
def mul(a,b): return a*b%MOD
op = add
print(f(k,R)-f(k,L-1), end=" ")
op = mul
print(f(k,R)*(pow(f(k,L-1),MOD-2,MOD) if L>1 else 1)%MOD)
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0