結果
問題 | No.1251 絶対に間違ってはいけない最小化問題 |
ユーザー |
👑 ![]() |
提出日時 | 2021-02-28 05:01:05 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 353 ms / 2,000 ms |
コード長 | 1,125 bytes |
コンパイル時間 | 398 ms |
コンパイル使用メモリ | 82,340 KB |
実行使用メモリ | 109,572 KB |
最終ジャッジ日時 | 2024-10-02 18:10:50 |
合計ジャッジ時間 | 21,150 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 42 |
ソースコード
def Ternary_Search(L,R,f,Integer=True,arg=False,ep=1/(1<<20),Times=50):if Integer:while (R-L)>3:a=(2*L+R)//3b=(L+2*R)//3p=f(a);q=f(b)if p<=q:R=belse:L=aa=(2*L+R)//3b=(L+2*R)//3else:while (R-L)>=ep and Times:Times-=1a=(2*L+R)/3b=(L+2*R)/3p=f(a);q=f(b)if p<=q:R=belse:L=aa=(2*L+R)/3b=(L+2*R)/3if arg:y=float("inf")argx=-1for x in [L,a,b,R]:p=f(x)if y>p:y=pargx=xreturn y,argxelse:return min(f(L),f(a),f(b),f(R))#================================================def f(x):X=0for a,b in zip(A,B):X+=b*abs(x-a)return X#================================================N=int(input())A=list(map(int,input().split()))B=list(map(int,input().split()))y,x=Ternary_Search(min(A),max(A),f,True,True)print(x,y)