結果
問題 | No.1251 絶対に間違ってはいけない最小化問題 |
ユーザー | 👑 SPD_9X2 |
提出日時 | 2020-10-09 22:57:28 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 477 ms / 2,000 ms |
コード長 | 485 bytes |
コンパイル時間 | 196 ms |
コンパイル使用メモリ | 82,376 KB |
実行使用メモリ | 108,172 KB |
最終ジャッジ日時 | 2024-07-20 13:38:33 |
合計ジャッジ時間 | 21,706 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 42 |
ソースコード
from sys import stdin def f(x): ret = 0 for i in range(N): ret += B[i] * abs(x-A[i]) return ret N = int(stdin.readline()) A = list(map(int,stdin.readline().split())) B = list(map(int,stdin.readline().split())) l = -1 * (10**9) r = 10**9 while r-l > 3: m1 = (l*2+r)//3 m2 = (l+r*2)//3 if f(m1) <= f(m2): r = m2 else: l = m1 ans = 0 for i in range(l-10,r+10): if f(ans) >= f(i): ans = i print (ans,f(ans))