/* 友利奈緒ぱわーでACしてくれ!!!!!!!!!!!! Charlotteまだ見てない人は見ような!!!!!!! /  /:/              \:ヽ \         /  /                     \  ヽ      \__L 彡                    ヽ  ',        フ /   /  /  /   ,         ヽ  ',  j        レ    /  /  /                ',  ヽ j         //     ! /_l_/__ノ   { \}       ',  ',/       i ハ     { 从j ハ i    ',  ト-、}  i i  }  jj       ( ハ   (  川 ハ ハ  !  ' ハ  ハ j j ,'   八     <_,ィ∧   斗芹テミxハ ハ  レ } /__レレ /   ∧ \ ノ         ∨ \  ゝ 辷:ソ    ) 芹レ心ヾレ′ / ト-- ´    \ー‐' ノ   \ゝ           ゞ:_ソ "/  /  ヽ        フ    i八 " "   ,       ム彡    \       /  /  j  ト           " "イト<      \\      /  /   j //ヽ、   ∩     イ { {   ̄ フフへ \\     ( /    ,/ /   i >――<ニニニニ┐  〃/: : ヽ ヽヽ     /  ィT´/ /┌―  ̄ ̄ /::: , ,)      〃//: : : : : :} ヽヽ)    / /  ∧ヾi┌― { { ̄    ノ:::ト゚<      ∥//: : : : : : : : i  ノ ノ .   ( 人  {:ヽヾi∨ ∧V    /:::/ 、ヽ    ∥/: : : : : : : : : :} /    V ( ∧: :\'∨ ∧V   ノ:::/  ∧ 〉___∥: : : : : :/: : : :レ        /∧: : : : ∨ ∧V┬イ:::ノ  〈 TT | |{{: : : : /: : : : : ∧   ノ       ( ハ: : : : :∨'T∧Vi i (    V ! ! {{: : / : : : : : : / ー ノ      V ハ: : : : :∨ヘ∧V i ゝゝ  i/⌒\{/ : : : : : : : /ー― ´       ∨ ヽ: : : : :∨ヘ∧∨i 〉 〉 / /二  ): : : : : : : : :/ (https://seesaawiki.jp/asciiart/d/Charlotte より) */ #include using namespace std; using ll = long long; using ull = unsigned long long; // #define int ll // #define DEBUG 42 #define double long double inline void nprint(){} template inline void nprint(Head &&head, Tail &&... tail) { cout << head << endl; nprint(move(tail)...); } #ifdef DEBUG #define eprint(...) nprint(__VA_ARGS__) #else #define eprint(...) if(0==1) cout << 1 << endl; #endif #define Yes(a) cout << (a ? "Yes" : "No") << endl #define YES(a) cout << (a ? "YES" : "NO") << endl #define POSSIBLE(a) cout << (a ? "POSSIBLE" : "IMPOSSIBLE") << endl using cmp = complex; using vb = vector; using vvb = vector; using vi = vector; using vvi = vector; using vl = vector; using vvl = vector; template using V = vector; template using VV = vector>; #define fi first #define se second #define maxs(x,y) (x=max(x,y)) #define mins(x,y) (x=min(x,y)) using pii = pair; using pll = pair; #define FOR(i,a,b) for(ll i = (a); i < (ll)(b); ++i) #define REP(i,n) FOR(i,0,n) #define FORS(i,a,b) FOR(i,a,b+1) #define REPS(i,n) REP(i,n+1) #define RFOR(i,a,b) for(ll i = (ll)(b)-1;i >= a;--i) #define RREP(i,n) RFOR(i,0,n) #define RREPS(i,n) RREP(i,n+1) #define RFORS(i,a,b) RFOR(i,a,b+1) #define ALL(obj) (obj).begin(), (obj).end() #define RALL(obj) (obj).rbegin(), (obj).rend() #define PERM(c) sort(ALL(c)); for(bool cp = true;cp;cp = next_permutation(ALL(c))) #define eb(val) emplace_back(val) const double PI = acos(-1), EPS = 1e-10; constexpr ll MOD = 1E9+7; constexpr int dx[] = {1,0,-1,0}; constexpr int dy[] = {0,1,0,-1}; template ostream& operator<<(ostream& s, const pair& p){ return s << "(" << p.first << ", " << p.second << ")"; } template istream& operator>>(istream &is,vector &st){ for(size_t i=0;i> st[i]; return is; } template istream& operator>>(istream &is,vector> &st){ for(size_t i=0;i> st[i]; return is; } template ostream& operator<<(ostream &os, const vector &st){ for(size_t i=0;i ostream& operator<<(ostream &os, const vector> &st){ for(size_t i=0;i solve(ll a,ll b,ll c){ ll d = b*b - 4*a*c; if(d<0){ return V(0); }else if(d==0){ double ans = -b/2/a; return V(1,ans); }else{ V res; double rd = sqrtl(d); res.eb((-b-rd)/2/a); res.eb((-b+rd)/2/a); return res; } } signed main(){ cin.tie(0); ios::sync_with_stdio(false); cout << fixed << setprecision(30); ll a,b,c; cin >> a >> b >> c; if(a==0){ if(b==0){ if(c==0){ cout << "-1" << endl; }else{ cout << 0 << endl; } }else{ cout << 1 << endl; cout << -(double)c/b << endl; } return 0; } auto res = solve(a,b,c); cout << res.size() << endl; if(res.size()>0) cout << res << endl; }