結果
| 問題 |
No.972 選び方のスコア
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-01-17 22:40:06 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 210 ms / 2,000 ms |
| コード長 | 585 bytes |
| コンパイル時間 | 174 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 120,576 KB |
| 最終ジャッジ日時 | 2024-06-25 22:27:03 |
| 合計ジャッジ時間 | 6,534 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 32 |
ソースコード
import sys
input = sys.stdin.readline
def judge(i, x):
return a[N-x]-a[i]>a[i]-a[i-x]
def binary_search(i):
l, r = 1, min(i, N-i-1)
while l<=r:
mid = (l+r)//2
if judge(i, mid):
l = mid+1
else:
r = mid-1
return r
N = int(input())
a = list(map(int, input().split()))
a.sort()
acc = [0]
for ai in a:
acc.append(acc[-1]+ai)
ans = 0
for i in range(N):
n = binary_search(i)
right = acc[N]-acc[N-n]
left = acc[i]-acc[i-n]
ans = max(ans, right-n*a[i]+left-n*a[i])
print(ans)