01MEX

면접 대비

시간 제한1초메모리 제한1024 MB

요약
0과 1로 이루어진 길이 N의 수열이 주어질 때, 모든 연속 부분 수열의 mex 값을 모두 더한 값을 구한다. N은 최대 500,000이다.
난이도

보통10점 중 5점

유형
배열, 수학, 조합론, 누적 합
정답자
아직 제출이 없습니다

문제

어떤 수열 XX에 대하여 mex(X){\text{mex}(X)}를 XX에 등장하지 않는 음이 아닌 정수 중 가장 작은 수로 정의하자. 예를 들어, mex(0,1,2,3,4)=5\text{mex} {(0, 1, 2, 3, 4)} = 5, mex(3,1,0,1)=2\text{mex} {(3, 1, 0, 1)} = 2, mex(2,2,1)=0\text{mex} {(2, 2, 1)} = 0이다.

길이가 NN인 수열 A=(a_1,a_2,⋯ ,a_N)A = (a\_1, a\_2, \cdots, a\_N)이 주어진다. 1≤i≤N1 \le i \le N인 모든 ii에 대하여 a_i∈0,1a\_i \in \\{0, 1\\}을 만족할 때, 아래 수식의 값을 구하는 프로그램을 작성해 보자.

∑_i=1N∑_j=iNmex(a_i,a_i+1,⋯ ,a_j−1,a_j)\sum\_{i = 1}^{N} {\sum\_{j = i}^{N} {\text{mex}(a\_{i}, a\_{i+1}, \cdots, a\_{j-1}, a\_{j})}}

입력

첫 번째 줄에 정수 NN이 주어진다. (1≤N≤500,000)(1 \le N \le 500\\,000)

두 번째 줄에 a_1,a_2,⋯ ,a_Na\_1, a\_2, \cdots, a\_N이 공백으로 구분되어 주어진다. (a_i∈0,1)(a\_i \in \\{0, 1\\})

출력

첫 번째 줄에 주어진 수식의 값을 출력한다.

힌트

답이 3232비트 정수형의 표현 범위를 넘어갈 수 있으므로 아래와 같은 자료형을 사용하는 것을 권장한다.

  • C, C++: long long
  • Java: long

예제2

  1. 예제 1

    입력
    3
    1 0 1
    
    예상 출력
    7
    
  2. 예제 2

    입력
    5
    0 0 0 0 0
    
    예상 출력
    15