結果

問題 No.955 ax^2+bx+c=0
ユーザー universato
提出日時 2020-06-02 01:49:38
言語 Ruby
(3.4.1)
結果
AC  
実行時間 96 ms / 2,000 ms
コード長 815 bytes
コンパイル時間 161 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 12,544 KB
最終ジャッジ日時 2024-11-22 19:26:50
合計ジャッジ時間 14,140 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 122
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

a, b, c = gets.to_s.split.map{|i| i.to_i }

if a < 0
  a = -a
  b = -b
  c = -c
end

if a == 0 && b == 0
  puts c == 0 ? -1 : 0
elsif a == 0
  puts 1
  printf "%.15f\n", (-c/1.0/b)
else
  d = b ** 2 - 4 * a * c
  if d < 0
    puts 0
  elsif d == 0
    puts 1
    printf "%.15f\n", (-b/2.0/a)
    # ans = Rational( -b, 2 * a)
    # puts "1 #{ans.to_f}"
  else
    if b > 0
      ans1 = (-b - d ** 0.5) / ( 2.0 * a )
      ans2 = c / ( a * ans1 )
    else
      ans2 = (-b + d ** 0.5) / ( 2.0 * a )
      ans1 =  c / ( a * ans2 )
      # ans1 = 0
    end
    # ans1 = (ans1 * 10**14).round / (1.0*(10**14))
    # ans2 = (ans2 * 10**14).round / (1.0*(10**14))
    ans1, ans2 = ans2, ans1 if ans1 > ans2
    puts 2
    printf "%.15f\n", ans1
    printf "%.15f\n", ans2
    # puts "2 #{ans1.to_f} #{ans2.to_f}"
  end
end
0