結果
| 問題 |
No.1917 LCMST
|
| コンテスト | |
| ユーザー |
googol_S0
|
| 提出日時 | 2022-04-29 23:43:43 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 694 bytes |
| コンパイル時間 | 259 ms |
| コンパイル使用メモリ | 82,352 KB |
| 実行使用メモリ | 272,364 KB |
| 最終ジャッジ日時 | 2024-06-29 05:32:05 |
| 合計ジャッジ時間 | 26,340 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 4 WA * 38 |
ソースコード
from math import gcd
N=int(input())
A=list(map(int,input().split()))
A.sort()
S=set()
B=[]
ANS=0
for i in range(N):
if A[i] in S:
ANS+=A[i]
else:
B.append(A[i])
S.add(A[i])
INF=10**12
N=len(B)
V=[INF]*123456
W=[INF]*N
D=[[] for i in range(100001)]
for i in range(1,100001):
for j in range(i,100001,i):
D[j].append(i)
for i in range(N):
for j in range(len(D[B[i]])):
W[i]=min(W[i],V[D[B[i]][j]])
V[D[B[i]][j]]=min(V[D[B[i]][j]],A[i]//D[B[i]][j])
V=[INF]*123456
for i in range(N-1,-1,-1):
for j in range(len(D[B[i]])):
W[i]=min(W[i],V[D[B[i]][j]])
V[D[B[i]][j]]=min(V[D[B[i]][j]],A[i]//D[B[i]][j])
X=[W[i]*B[i] for i in range(N)]
print(sum(X)-min(X)+ANS)
googol_S0