만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

전투 드로이드

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

요약
연속된 구간 중 droid들의 2^a_i 합이 2의 거듭제곱이 되는 구간의 개수를 구합니다.
난이도

보통10점 중 7점

유형
수학, 해시맵, 비트 연산
정답자
아직 제출이 없습니다

문제

드쿠 백작은 중요한 임무에 드로이드 부대를 보내려 한다. 한 줄로 선 nn대의 드로이드가 왼쪽에서 오른쪽으로 1번부터 nn번까지 번호가 매겨져 있다. 백작은 이 줄의 연속된 구간을 부대로 고른다. 즉 1≤l≤r≤n1 \le l \le r \le n을 만족하는 ll, rr에 대해 ll번부터 rr번까지의 드로이드를 고른다. 드로이드 ii의 AIQ(인공지능 계수)는 aia_i이다.

같은 부대의 드로이드는 더 진보한 드로이드로 합쳐질 수 있다. 부대에 AIQ가 같은 xx인 드로이드가 두 대 있으면, 둘이 합쳐져 AIQ가 x+1x + 1인 드로이드 한 대가 된다.

드쿠는 부대의 모든 드로이드가 여러 번의 합치기를 거쳐 한 대가 될 수 있는 구간을 고르고 싶어 한다. 그런 구간의 개수를 구하라.

입력

첫 줄에 드로이드의 수 nn이 주어진다 (1≤n≤200 0001 \le n \le 200\,000). 둘째 줄에는 각 드로이드의 AIQ 값 aia_i가 nn개 주어진다 (1≤ai≤1091 \le a_i \le 10^9).

출력

드쿠가 부대로 고를 수 있는 구간의 개수를 한 줄에 출력한다.

참고

첫 번째 예시에서는 길이가 1인 구간 세 개 외에 [1,1][1, 1]과 [1,1,2][1, 1, 2]도 조건을 만족한다. 두 번째 예시에서는 길이가 1인 구간 일곱 개 외에 길이가 4인 구간 네 개와 [3,4,3][3, 4, 3] 구간 두 개도 조건을 만족한다.

예제2

  1. 예제 1

    입력
    3
    1 1 2
    
    예상 출력
    5
    
  2. 예제 2

    입력
    7
    3 4 3 5 3 4 3
    
    예상 출력
    13