아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

서로 다른 수로만 이루어진 구간

면접 대비

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

요약
길이 N인 수열에서 값이 모두 서로 다른 연속 구간 (i, j)의 개수를 센다.
난이도

보통10점 중 5점

유형
투 포인터, 슬라이딩 윈도우, 해시맵, 배열
정답자
아직 제출이 없습니다

문제

길이가 NN인 수열이 주어진다. 이 수열에서 연속한 구간을 하나 고를 때, 구간 안에 같은 수가 두 번 이상 나오지 않는 구간이 몇 개인지 구하는 프로그램을 작성하여라.

구간의 길이는 1 이상이고, 시작 위치나 끝 위치가 다르면 서로 다른 구간으로 센다. 즉 1≤i≤j≤N1 \le i \le j \le N을 만족하는 쌍 (i,j)(i, j) 중에서 ii번째부터 jj번째까지의 수가 모두 서로 다른 쌍의 개수를 구하면 된다.

입력

첫째 줄에 수열의 길이 NN이 주어진다. (1≤N≤1000001 \le N \le 100000)

둘째 줄에 수열을 이루는 정수 NN개가 공백으로 구분되어 주어진다. 각 수는 11 이상 100000100000 이하이다.

출력

조건을 만족하는 구간의 개수를 첫째 줄에 출력한다.

예제3

  1. 예제 1

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

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

    입력
    5
    1 1 1 1 1
    
    예상 출력
    5