結果

問題 No.306 さいたま2008
ユーザー oxyshower
提出日時 2019-08-23 22:21:26
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 676 bytes
コンパイル時間 1,500 ms
コンパイル使用メモリ 168,436 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-13 14:50:56
合計ジャッジ時間 2,170 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 21 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
//#define int long long
#define int double

#ifdef LOCAL_DEBUG
  #include "LOCAL_DEBUG.hpp"
#endif

signed main(){

  int a,b,c,d; cin >> a >> b >> c >> d;
  auto f = [&](int t){
    int res = sqrt(pow(a,2) + pow(b-t,2)) + sqrt(pow(c,2) + pow(d-t,2));
    return res;
  };

  int left = min(b,d),right = max(b,d);
  //[left , t1 , t2 , right]
  for(int i = 0; i < 100; i++){
    int t1 = (left * 2 + right) / 3;
    int t2 = (left + right * 2) / 3;
    //t2 += 1;

    if(f(t1) > f(t2)) left = t1;
    else right = t2;
  }

  int ans;
  if(f(left < f(right))) ans = left;
  else ans = right;
  printf("%.6f\n",ans);

  return 0;
}
0