結果
| 問題 | No.1064 ∪∩∩ / Cup Cap Cap | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2020-05-29 21:42:29 | 
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 3 ms / 2,000 ms | 
| コード長 | 1,093 bytes | 
| コンパイル時間 | 2,277 ms | 
| コンパイル使用メモリ | 195,584 KB | 
| 最終ジャッジ日時 | 2025-01-10 16:48:41 | 
| ジャッジサーバーID (参考情報) | judge5 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 36 | 
ソースコード
#include <bits/stdc++.h>
#ifdef DEBUG
#include <Mylib/Debug/debug.cpp>
#else
#define dump(...)
#endif
const long double eps = 1e-7;
/**
 * @title 二次方程式の実数解
 * @docs quadratic_equation.md
 */
std::vector<long double> quadratic_equation(long double a, long double b, long double c){
  long double d = b*b - 4*a*c;
  if(d < 0) return {};
  long double x1 = (-b + std::sqrt(d)) / (2 * a);
  long double x2 = (-b - std::sqrt(d)) / (2 * a);
  return {x1, x2};
}
int main(){
  int a, b, c, d;
  while(std::cin >> a >> b >> c >> d){
    int64_t A = 2;
    int64_t B = a-c;
    int64_t C = b-d;
    int64_t D = B * B - 4LL * A * C;
    if(D < 0){
      std::cout << "No\n";
    }else if(D == 0){
      std::cout << "Yes\n";
    }else{
      auto res = quadratic_equation(2.0, a-c, b-d);
      auto x1 = res[0], x2 = res[1];
      auto y1 = x1 * x1 + x1 * a + b;
      auto y2 = x2 * x2 + x2 * a + b;
      auto p = (y2 - y1) / (x2 - x1);
      auto q = y1 - p * x1;
      std::cout << std::fixed << std::setprecision(12) << p << " " << q << "\n";
    }
  }
  return 0;
}
            
            
            
        