結果

問題 No.955 ax^2+bx+c=0
ユーザー eve__fuyuki
提出日時 2019-12-24 01:56:40
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 1,034 bytes
コンパイル時間 1,208 ms
コンパイル使用メモリ 161,032 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-09-19 06:09:06
合計ジャッジ時間 3,865 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 99 WA * 23
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
  ll a, b, c;
  cin >> a >> b >> c;
  cout << setprecision(16);
  if (a == 0 && b == 0) {
	  if (c == 0) {
		  cout << -1 << endl;
		  return 0;
		} else {
		  cout << 0 << endl;
		  return 0;
		}
	} else if (a == 0) {
	  cout << 1 << endl;
	  cout << (double) (-c / b) << endl;
	  return 0;
	} else {
	  if (b * b - 4 * a * c == 0) {
		  cout << 1 << endl;
		  cout << (double) (-b / (2 * a)) << endl;
		  return 0;
		} else if (b * b - 4 * a * c < 0) {
		  cout << 0 << endl;
		  return 0;
		}
	  double D = sqrt(b * b - 4 * a * c);
	  double ans1, ans2;
	  if (abs(-b - D) < 1e-11) {
		  ans1 = (double) 2 * c / (-b + D);
		} else {
		  ans1 = (double) (-b - D) / (2 * a);
		}
	  if (abs(-b + D) < 1e-11) {
		  ans2 = (double) 2 * c / (-b - D);
		} else {
		  ans2 = (double) (-b + D) / (2 * a);
		}
	  if (ans1 > ans2) {
		  swap(ans1, ans2);
		}
	  cout << 2 << endl;
	  cout << ans1 << endl;
	  cout << ans2 << endl;
	  return 0;
	}
  return 0;
}
0