結果
| 問題 |
No.1918 Simple Math ?
|
| コンテスト | |
| ユーザー |
kozy
|
| 提出日時 | 2022-04-30 00:53:34 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 909 bytes |
| コンパイル時間 | 130 ms |
| コンパイル使用メモリ | 82,248 KB |
| 実行使用メモリ | 126,380 KB |
| 最終ジャッジ日時 | 2024-06-29 06:50:55 |
| 合計ジャッジ時間 | 13,688 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 15 WA * 1 TLE * 3 -- * 14 |
ソースコード
def f(n):
a=int(n**0.5)
for i in range(-3,3):
if (a+i)**2<=n<(a+i+1)**2:
return a+i
T=int(input())
mod=10**9+7
for _ in range(T):
a,N=map(int,input().split())
ans=0
for i in range(1,a):
if i>N:
break
ans+=f(a*i)
ans%=mod
if a-1>=N:
print(ans)
continue
K=[0]*a
for i in range(a,4*a):
s=f(i*a)
K[s-a]+=1
x=f(N//a)
#x>=1
s1=0
s2=0
s3=3*a
kosu=a
for i in range(a):
s1+=(i+a)*K[i]%mod
s2+=(i+a)
s1%=mod
s2%=mod
if x>=2:
ans+=s1*(x-1)%mod
ans+=(a*kosu%mod*((x-2)*(x-1)*(2*x-3))//3)%mod
ans+=(((x-2)*(x-1))//2)*a%mod*s3%mod
ans+=(x-2)*(x-1)*s2%mod
ans%=mod
#(x**2)*a~N
kk=N-((x**2)*a)+1
for i in range(a):
if kk-(K[i]+2*(x-1))<=0:
ans+=kk*(i+a*x)
ans%=mod
break
else:
kk-=(K[i]+2*(x-1))
kk%=mod
ans+=(i+a*x)*(K[i]+2*(x-1))%mod
ans%=mod
print(ans)
kozy