結果
問題 |
No.955 ax^2+bx+c=0
|
ユーザー |
|
提出日時 | 2020-04-23 00:12:00 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 2,133 bytes |
コンパイル時間 | 1,000 ms |
コンパイル使用メモリ | 109,188 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-12 09:56:12 |
合計ジャッジ時間 | 3,872 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 122 |
ソースコード
#include <iostream> #include <vector> #include <algorithm> #include <cmath> #include <queue> #include <string> #include <map> #include <set> #include <stack> #include <tuple> #include <deque> #include <numeric> #include <bitset> #include <iomanip> #include <cassert> #include <chrono> #include <random> #include <limits> #include <iterator> #include <functional> #include <sstream> #include <complex> using namespace std; typedef long long ll; typedef uint64_t ull; typedef pair<int, int> P; constexpr double PI = 3.1415926535897932; // acos(-1) constexpr double EPS = 1e-9; constexpr int INF = 1001001001; constexpr int mod = 1000000007; // constexpr int mod = 998244353; #define chmax(x, y) x = max(x, y) #define chmin(x, y) x = min(x, y) int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); using ld = long double; ll a, b, c; cin >> a >> b >> c; if(a == 0 && b == 0){ if(c == 0) cout << -1 << endl; else cout << 0 << endl; return 0; } if(a == 0){ ld ans = -c; ans /= b; cout << 1 << endl; cout << fixed << setprecision(17); cout << ans << endl; return 0; } ll D = b * b - 4 * a * c; constexpr ld eps = 1e-14; if(D > 0){ cout << 2 << endl; cout << fixed << setprecision(17); if(b > 0){ ld ans1 = -b; ans1 -= sqrt(ld(D)); ans1 /= (ld)2 * a; ld ans2 = (ld)c / a; ans2 /= ans1; if(ans1 > ans2) swap(ans1, ans2); cout << ans1 << endl; cout << ans2 << endl; } else{ ld ans2 = -b; ans2 += sqrt(ld(D)); ans2 /= (ld)2 * a; ld ans1 = (ld)c / a; ans1 /= ans2; if(ans1 > ans2) swap(ans1, ans2); cout << ans1 << endl; cout << ans2 << endl; } } else if(D == 0){ cout << 1 << endl; ld ans = -b; ans /= 2; ans /= a; cout << fixed << setprecision(17); cout << ans << endl; } else cout << 0 << endl; }