結果

問題 No.306 さいたま2008
ユーザー oxyshoweroxyshower
提出日時 2019-08-23 22:21:26
言語 C++14
(gcc 12.3.0 + boost 1.83.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
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,820 KB
testcase_01 AC 1 ms
6,820 KB
testcase_02 AC 2 ms
6,816 KB
testcase_03 AC 2 ms
6,816 KB
testcase_04 AC 2 ms
6,816 KB
testcase_05 AC 2 ms
6,820 KB
testcase_06 AC 1 ms
6,816 KB
testcase_07 AC 2 ms
6,820 KB
testcase_08 AC 2 ms
6,820 KB
testcase_09 AC 2 ms
6,816 KB
testcase_10 AC 2 ms
6,820 KB
testcase_11 AC 2 ms
6,816 KB
testcase_12 AC 2 ms
6,824 KB
testcase_13 AC 2 ms
6,820 KB
testcase_14 AC 2 ms
6,816 KB
testcase_15 AC 1 ms
6,816 KB
testcase_16 AC 2 ms
6,820 KB
testcase_17 AC 2 ms
6,816 KB
testcase_18 AC 1 ms
6,816 KB
testcase_19 AC 1 ms
6,820 KB
testcase_20 WA -
testcase_21 WA -
testcase_22 AC 2 ms
6,820 KB
権限があれば一括ダウンロードができます

ソースコード

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