結果
| 問題 |
No.2352 Sharpened Knife in Fall
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-06-16 22:00:03 |
| 言語 | Crystal (1.14.0) |
| 結果 |
AC
|
| 実行時間 | 642 ms / 3,000 ms |
| コード長 | 434 bytes |
| コンパイル時間 | 13,705 ms |
| コンパイル使用メモリ | 297,504 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-24 14:12:42 |
| 合計ジャッジ時間 | 27,765 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
ソースコード
input = gets.to_s.split.map { |s| s.to_i }
r = input[0].to_f64
k = input[1]
r2 = r * r * 1.0
f = ->(y: Float64) { dy = Math.sqrt(r2 - y * y); (y * dy + r2 * Math.atan(y / dy)) }
s = Math::PI * r2 / (k + 1)
ans = [] of Float64
prev = -r
k.times do
ac = r
wa = prev
s0 = f.call(prev)
100.times do
wj = (ac + wa) * 0.5
if f.call(wj) - s0 >= s
ac = wj
else
wa = wj
end
end
puts ac
prev = ac
end