結果
| 問題 |
No.719 Coprime
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-05-06 23:08:30 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 934 bytes |
| コンパイル時間 | 191 ms |
| コンパイル使用メモリ | 82,280 KB |
| 実行使用メモリ | 57,220 KB |
| 最終ジャッジ日時 | 2024-11-29 09:45:38 |
| 合計ジャッジ時間 | 4,717 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 61 |
ソースコード
import sys
from itertools import combinations
from math import gcd
from functools import reduce
def all_coprime(numbers):
""" 与えられた数字のリストが互いに素であるかをチェックする """
return all(gcd(numbers[i], numbers[j]) == 1 for i in range(len(numbers)) for j in range(i + 1, len(numbers)))
def max_sum_coprime(numbers):
""" 互いに素な数字の組み合わせの中で最大の合計を見つける """
n = len(numbers)
max_sum = 0
# すべての部分集合を考慮する
for i in range(1, 1 << n):
subset = [numbers[j] for j in range(n) if i & (1 << j)]
if all_coprime(subset):
max_sum = max(max_sum, sum(subset))
return max_sum
def main():
input = sys.stdin.read
data = input().split()
K = int(data[0])
numbers = list(map(int, data[1:K+1]))
print(max_sum_coprime(numbers))
if __name__ == "__main__":
main()