Dãy số thú vị

View as PDF

Submit solution

Points: 1.00 (partial)
Time limit: 1.5s
Memory limit: 64M
Input: stdin
Output: stdout

Author:
Problem type

Trung đang học Nhập môn lập trình về phần mảng 1 chiều và được thầy Tình giao cho một bài toán "đơn giản" như sau: cho một mảng số nguyên dương có ~n~ phần tử ~a_1, a_2, ..., a_n~ và các phần tử có giá trị không vượt quá ~n~. Đếm xem có bao nhiêu cặp chỉ số ~(L,R)~ với ~1 \le L < R \le n~ sao cho ~a_L \neq a_R~ và với mọi ~i~ mà ~L < i < R~ thì ~a_i~ cũng phải khác ~a_L, a_R.~

Với số ~n~ nhỏ, Trung có thể giải bài toán trong vòng một nốt nhạc. Tuy nhiên, thầy đã tăng độ khó lên bằng cách cho ~n~ rất lớn và thuật toán của Trung đòi hỏi chương trình chạy quá lâu. Hãy giúp Trung tìm cách tối ưu nhé.

Input: dòng đầu tiên gồm số nguyên dương ~n~ với ~2 \le n \le 2.10^5.~ Dòng tiếp theo gồm các phần tử là các số nguyên dương của mảng (các số không nhất thiết phân biệt).

Output: đáp số của bài toán.

Sample input:

4

3 1 4 2

Sample output:

6

Giải thích các cặp chỉ số ~(L,R)~ có thể là ~(1,2),(2,3),(3,4),(1,4),(1,3),(2,4)~. Vì tất cả các số hạng của dãy đều đôi một phân biệt nên cứ chọn bất kỳ cặp chỉ số nào cũng đều thỏa mãn.


Comments

Please read the guidelines before commenting.


There are no comments at the moment.