結果
問題 |
No.1917 LCMST
|
ユーザー |
![]() |
提出日時 | 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)