結果
| 問題 |
No.3187 Mingle
|
| コンテスト | |
| ユーザー |
ゼット
|
| 提出日時 | 2025-06-20 22:34:03 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,506 ms / 2,500 ms |
| コード長 | 678 bytes |
| コンパイル時間 | 469 ms |
| コンパイル使用メモリ | 82,240 KB |
| 実行使用メモリ | 177,280 KB |
| 最終ジャッジ日時 | 2025-08-13 07:40:16 |
| 合計ジャッジ時間 | 33,583 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 30 |
ソースコード
N,mod=map(int,input().split())
p=[0]*(N+1)
v=[0]*(N+1)
p[N]=1
v[N]=pow(N,-1,mod)
G=[[] for i in range(N+1)]
for x in range(2,N):
for y in range(1,N+1):
if x*y>N:
break
G[x*y].append(x)
u=[0]*(N+1)
for x in range(1,N+1):
for y in range(1,N+1):
if x*y>N:
break
u[x*y]+=1
v[N]=pow((N-u[x]),-1,mod)
for x in range(N-1,1,-1):
for y in G[x]:
l,r=x+1,x+y
e=v[x+1]
if r<=N:
e-=v[r]
e%=mod
p[x]+=e
p[x]%=mod
if x>2:
v[x]=v[x+1]+p[x]*pow((x-u[x]),-1,mod)
v[x]%=mod
result=0
for x in range(3,N+1):
result+=p[x]
b=u[x]*pow(x,-1,mod)
b%=mod
b=1-b
result+=(pow(b,-1,mod)-1)*p[x]
result%=mod
print(result)
ゼット