https://yukicoder.me/problems/no/1009
解説
https://yukicoder.me/submissions/447469
ヒントとして書かれている区分求積法を実装することで答えた。
座標が微妙にずれている気もするが、誤差の範囲に収まってくれるだろう。
104くらいの分割でよさそうだが、念のため106で分割しておいた。
余談であるが、いつも106みたいな数を書くときに1010101のように書いている。
ピッタリよりもマージンをとっておいたほうが、配列を作ったときに更新でちょっと便利になったり、
桁が見やすいといった効果がある。
後者は、桁区切り文字を使ってもいいんだけど、なんとなく入力のしやすさからこっちを使ってる。
C++14 数値リテラルの桁区切り文字 - Faith and Brave - C++で遊ぼう
double a, b; //--------------------------------------------------------------------------------------------------- void _main() { cin >> a >> b; double ans = 0; rep(i, 0, 1010101) { double d = (b - a) / 1010101; double x = a + (b - a) * i / 1010101; ans += abs((x - a) * (x - b)) * d; } printf("%.10f\n", ans); }