結果
問題 |
No.837 Noelちゃんと星々2
|
ユーザー |
|
提出日時 | 2021-01-19 02:09:41 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,265 bytes |
コンパイル時間 | 495 ms |
コンパイル使用メモリ | 82,096 KB |
実行使用メモリ | 112,172 KB |
最終ジャッジ日時 | 2024-12-15 02:17:44 |
合計ジャッジ時間 | 7,651 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 12 WA * 17 |
ソースコード
#region Header #!/usr/bin/env python3 # from typing import * import sys import io import math import collections import decimal import itertools from queue import PriorityQueue import bisect import heapq def input(): return sys.stdin.readline()[:-1] sys.setrecursionlimit(1000000) #endregion # _INPUT = """5 # 0 1 6 7 8 # """ # sys.stdin = io.StringIO(_INPUT) def main(): N = int(input()) Y = sorted(list(map(int, input().split()))) # 累積和 S = [0] for i in range(N): S.append(S[-1] + Y[i]) d_min = 10**10 for k in range(1, N): # Y[:k] と Y[k:] に分割 i1 = (k-1)//2 y1 = Y[i1] i2 = k + (N-k-1)//2 y2 = Y[i2] if y1 == y2: d = 1 else: # d1 = sum(y1 - Y[i] for i in range(0, i1)) + sum(Y[i] - y1 for i in range(i1, k)) # d2 = sum(y2 - Y[i] for i in range(k, i2)) + sum(Y[i] - y2 for i in range(i2, N)) d1 = (y1 * i1 - S[i1]) + (S[k] - S[i1] - y1 * (k - i1)) d2 = (y2 * (i2 - k) - (S[i2] - S[k])) + (S[N] - S[i2] - y2 * (N - i2)) d = d1 + d2 d_min = min(d_min, d) print(d_min) if __name__ == '__main__': main()