結果

問題 No.3187 Mingle
ユーザー sasa8uyauya
提出日時 2025-06-20 23:13:47
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,150 ms / 2,500 ms
コード長 409 bytes
コンパイル時間 180 ms
コンパイル使用メモリ 82,376 KB
実行使用メモリ 214,472 KB
最終ジャッジ日時 2025-06-20 23:14:14
合計ジャッジ時間 24,186 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

n,M=map(int,input().split())
f=[[] for i in range(n+1)]
for i in range(1,n+1):
  for j in range(i,n+1,i):
    f[j]+=[i]
fb=[1,1]
for i in range(2,n+1):
  fb+=[(M//i)*fb[M%i]*(-1)%M]
q=[0]*(n+1)
r=[0]*(n+1)
g=0
for i in range(3,n+1):
  g-=r[i]
  g%=M
  q[i]+=g
  q[i]+=i
  q[i]*=fb[i-len(f[i])]
  q[i]%=M
  g+=q[i]*len(f[i])
  g%=M
  for j in f[i]:
    if i+j<=n:
      r[i+j]+=q[i]
      r[i+j]%=M
print(q[n])
0