結果
問題 | No.886 Direct |
ユーザー |
![]() |
提出日時 | 2025-03-06 19:46:45 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,406 ms / 4,000 ms |
コード長 | 295 bytes |
コンパイル時間 | 712 ms |
コンパイル使用メモリ | 82,120 KB |
実行使用メモリ | 99,928 KB |
最終ジャッジ日時 | 2025-03-06 19:46:57 |
合計ジャッジ時間 | 11,127 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 32 |
ソースコード
h,w=map(int,input().split()) if h==1 or w==1: print(max(h,w)-1) exit() M=10**9+7 l=min(h,w) q=[0]*l for i in reversed(range(1,l)): x=(h-1)//i y=(w-1)//i q[i]=(h*x-i*x*(x+1)//2)*(w*y-i*y*(y+1)//2)*2%M for j in range(i+i,l,i): q[i]-=q[j] q[i]%=M print((q[1]+h*(w-1)+(h-1)*w)%M)