シーケンスの最大値探索
しかし、なんやかんやでいろんなところで役に立つ
n > 0
code:cpp
for (const T a:A) { M = std::max(M, a); }
$ i番目までの要素を含む集合を$ A_iとする。
$ i番目の要素を$ a_iとする。
$ \max A_{i+1} = \max \{ \max A_i, a_{i+1} \}が成立するため成立する。
加えて、$ A = A_nであることも重要
$ i回目(1-origin)のループでは$ \max A_iが求められている状態と言える。