結果
| 問題 |
No.972 選び方のスコア
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 18:35:21 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 898 bytes |
| コンパイル時間 | 184 ms |
| コンパイル使用メモリ | 82,132 KB |
| 実行使用メモリ | 113,472 KB |
| 最終ジャッジ日時 | 2025-06-12 18:35:50 |
| 合計ジャッジ時間 | 6,219 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 25 WA * 7 |
ソースコード
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)
gew1fw