結果
問題 |
No.1917 LCMST
|
ユーザー |
![]() |
提出日時 | 2025-04-16 01:08:14 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,028 bytes |
コンパイル時間 | 305 ms |
コンパイル使用メモリ | 82,264 KB |
実行使用メモリ | 256,364 KB |
最終ジャッジ日時 | 2025-04-16 01:10:00 |
合計ジャッジ時間 | 13,074 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 4 WA * 38 |
ソースコード
import math def main(): import sys input = sys.stdin.read().split() n = int(input[0]) a = list(map(int, input[1:n+1])) if n == 0: print(0) return x = min(a) k = a.count(x) unique_a = sorted(set(a)) if not unique_a: print(0) return max_A = unique_a[-1] max_d = [0] * (max_A + 1) # 预处理max_d数组 for num in unique_a: if num == 0: continue current = num multiple = 2 * current while multiple <= max_A: if max_d[multiple] < current: max_d[multiple] = current multiple += current sum_edges = 0 for num in unique_a: if num == x: continue d = max_d[num] if d != 0: sum_edges += num else: gcd_x_num = math.gcd(x, num) sum_edges += (x * num) // gcd_x_num sum_edges += (k - 1) * x print(sum_edges) if __name__ == "__main__": main()