結果
| 問題 |
No.1918 Simple Math ?
|
| コンテスト | |
| ユーザー |
kozy
|
| 提出日時 | 2022-04-30 00:59:15 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 803 bytes |
| コンパイル時間 | 232 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 149,864 KB |
| 最終ジャッジ日時 | 2024-06-29 06:59:11 |
| 合計ジャッジ時間 | 23,501 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 22 WA * 11 |
ソースコード
def f(n):
a=int(n**0.5)
return a
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
s1=0
for i in range(a,4*a):
s=f(i*a)
K[s-a]+=1
s1+=s
x=f(N//a)
#x>=1
s1%=mod
s2=((3*a-1)*a//2)%mod
s3=3*a
kosu=a
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