아레나레이팅

solved.ac Grand Arena Party × NEXON (onsite, rated)

ii번째 수부터 jj번째 수까지가 오름차순으로 배열되어있기 위해서는, ik<ji \le k < j를 만족하는 모든 정수 kk에 대해 Ak<Ak+1A_k < A_{k+1}을 만족해야 합니다. 조건은 인접한 두 수를 비교하는 것만으로 판단할 수 있습니다. 즉, BkB_kAk<Ak+1A_k < A_{k+1}을 만족하는지 여부에따라 True 혹은 False로 나타내면, ii번째 수부터 jj번째 수까지가 오름차순이라는 것은, Bi,Bi+1,,Bj1B_i, B_{i+1}, \cdots, B_{j-1} 모두가 True라는 것입니다.

이런 (i,j)(i, j)를 세는 방법은 여러가지가 있습니다.

답은 BB에서 연속된 True 블럭 길이 kk에 대해 k(k+1)2\frac{k(k+1)}{2}를 모두 더한 것에 NN을 더한 것이 됩니다. 모든 연산은 O(N)\mathcal O (N)에 처리할 수 있습니다.