結果

問題 No.955 ax^2+bx+c=0
コンテスト
ユーザー eve__fuyuki
提出日時 2019-12-24 01:56:40
言語 C++11
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WA  
実行時間 -
コード長 1,034 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 941 ms
コンパイル使用メモリ 175,412 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2026-04-07 13:17:31
合計ジャッジ時間 4,143 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 99 WA * 23
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#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