結果

問題 No.1233 割り切れない気持ち
ユーザー rlangevin
提出日時 2023-10-30 12:15:39
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 171 ms / 3,153 ms
コード長 442 bytes
コンパイル時間 353 ms
コンパイル使用メモリ 82,308 KB
実行使用メモリ 111,752 KB
最終ジャッジ日時 2024-09-25 17:12:57
合計ジャッジ時間 5,783 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 39
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
A = list(map(int, input().split()))
M = max(A)
D = [0] * (M + 1)
for a in A:
    D[a] += 1

Dc = [0] * (M + 2)
for i in range(M + 1):
    Dc[i + 1] = Dc[i] + D[i]


ans = N * sum(A)
memo = [-1] * (M + 1)
for a in A:
    if memo[a] != -1:
        ans -= memo[a]
        continue
    v = 0
    for i in range(a, M + 1, a):
        v += (Dc[min(i + a, M + 1)] - Dc[i]) * (i // a)
    ans -= a * v
    memo[a] = a * v

print(ans)
0