結果
| 問題 | No.2046 Ans Mod? Mod Ans! |
| コンテスト | |
| ユーザー |
lilictaka
|
| 提出日時 | 2022-09-28 00:58:19 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 135 ms / 4,000 ms |
| コード長 | 727 bytes |
| 記録 | |
| コンパイル時間 | 186 ms |
| コンパイル使用メモリ | 85,248 KB |
| 実行使用メモリ | 120,960 KB |
| 最終ジャッジ日時 | 2026-05-28 21:54:26 |
| 合計ジャッジ時間 | 3,375 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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