結果

問題 No.972 選び方のスコア
ユーザー gew1fw
提出日時 2025-06-12 13:25:59
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 898 bytes
コンパイル時間 426 ms
コンパイル使用メモリ 82,652 KB
実行使用メモリ 113,740 KB
最終ジャッジ日時 2025-06-12 13:32:04
合計ジャッジ時間 5,490 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 25 WA * 7
権限があれば一括ダウンロードができます

ソースコード

diff #

n = int(input())
a = list(map(int, input().split()))
a.sort()

# Prefix sum for elements less than a[i] (sorted)
sum_less_prefix = [0] * (n + 1)
for i in range(n):
    sum_less_prefix[i+1] = sum_less_prefix[i] + a[i]

# Reverse the array for prefix sum of greater elements (sorted in descending order)
rev_a = a[::-1]
sum_greater_prefix = [0] * (n + 1)
for i in range(n):
    sum_greater_prefix[i+1] = sum_greater_prefix[i] + rev_a[i]

max_score = 0  # At least one element is selected, which gives score 0

for i in range(n):
    # Number of elements less than a[i] is i, greater is (n-1 - i)
    t_max = min(i, (n - 1) - i)
    if t_max == 0:
        current = 0
    else:
        sum_less = sum_less_prefix[t_max]
        sum_greater = sum_greater_prefix[t_max]
        current = sum_less + sum_greater - 2 * t_max * a[i]
    if current > max_score:
        max_score = current

print(max_score)
0