結果
| 問題 |
No.2046 Ans Mod? Mod Ans!
|
| コンテスト | |
| ユーザー |
lilictaka
|
| 提出日時 | 2022-09-28 00:58:19 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 207 ms / 4,000 ms |
| コード長 | 727 bytes |
| コンパイル時間 | 391 ms |
| コンパイル使用メモリ | 82,048 KB |
| 実行使用メモリ | 115,968 KB |
| 最終ジャッジ日時 | 2024-12-22 17:19:24 |
| 合計ジャッジ時間 | 4,065 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 18 |
ソースコード
def acum(List):#累積和
rev = [0 for _ in range(len(List))]
for i in range(len(List)):
if i == 0:
rev[i] = List[i]
else:
rev[i] = rev[i-1] + List[i]
return rev
N = int(input())
A = [0] + list(map(int,input().split()))
A.sort()
mx = max(A)
cnt = [0] * (mx+1)
cum = [0] * (mx+1)
for i in range(len(A)):
cnt[A[i]] +=1
cum[A[i]] += A[i]
cnt = acum(cnt)
cum = acum(cum)
DEL = 0
for i in range(1,N+1):
m = mx//A[i]
tmp = 0
for k in range(1,m+1):
tmp += cum[min((k+1) * A[i]-1,mx)] - cum[k*A[i]-1] - (cnt[min((k+1) * A[i]-1 ,mx)] - cnt[k*A[i]-1]) * A[i] *k
DEL +=tmp
ans = 0
for i in range(1,N+1) :
ans += (N-i) * A[i]
ans -= DEL
print(ans)
lilictaka