結果
| 問題 | No.609 Noelちゃんと星々 |
| コンテスト | |
| ユーザー |
Mr.Fuku
|
| 提出日時 | 2018-08-04 18:52:03 |
| 言語 | Python3 (3.14.3 + numpy 2.4.4 + scipy 1.17.1) |
| 結果 |
AC
|
| 実行時間 | 816 ms / 2,000 ms |
| コード長 | 656 bytes |
| 記録 | |
| コンパイル時間 | 362 ms |
| コンパイル使用メモリ | 20,824 KB |
| 実行使用メモリ | 25,208 KB |
| 最終ジャッジ日時 | 2026-04-08 05:34:26 |
| 合計ジャッジ時間 | 15,845 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 25 |
ソースコード
n = int(input())
num = list(map(int,input().split()))
max_n,min_n = num[0],num[0]
step = [[-1,1]]
def measure(index,limit):
cost = 0
for i in range(n):
cost += abs(num[i]-index)
if cost>limit:
return float("inf")
return cost
for i in range(n):
if max_n<num[i]:
max_n=num[i]
elif min_n>num[i]:
min_n=num[i]
x = 2
while x<max_n-min_n:
step.insert(0,[-x,x])
x *= 2
index = (max_n+min_n)//2
cost = measure(index,float("inf"))
for s in step:
for i in s:
c = measure(index+i,cost)
if cost>c:
index += i
cost = c
break
print(cost)
Mr.Fuku