CF1824D LuoTianyi and the Function
Description
LuoTianyi gives you an array $ a $ of $ n $ integers and the index begins from $ 1 $ .
Define $ g(i,j) $ as follows:
- $ g(i,j) $ is the largest integer $ x $ that satisfies $ \{a_p:i\le p\le j\}\subseteq\{a_q:x\le q\le j\} $ while $ i \le j $ ;
- and $ g(i,j)=0 $ while $ i>j $ .
There are $ q $ queries. For each query you are given four integers $ l,r,x,y $ , you need to calculate $ \sum\limits_{i=l}^{r}\sum\limits_{j=x}^{y}g(i,j) $ .
Input Format
The first line contains two integers $ n $ and $ q $ ( $ 1\le n,q\le 10^6 $ ) — the length of the array $ a $ and the number of queries.
The second line contains $ n $ integers $ a_1,a_2,\ldots,a_n $ ( $ 1\le a_i\le n $ ) — the elements of the array $ a $ .
Next $ q $ lines describe a query. The $ i $ -th line contains four integers $ l,r,x,y $ ( $ 1\le l\le r\le n, 1\le x\le y\le n $ ) — the integers in the $ i $ -th query.
Output Format
Print $ q $ lines where $ i $ -th line contains one integer — the answer for the $ i $ -th query.
Explanation/Hint
In the first example:
In the first query, the answer is $ g(1,4)+g(1,5)=3+3=6 $ .
$ x=1,2,3 $ can satisfies $ \{a_p:1\le p\le 4\}\subseteq\{a_q:x\le q\le 4\} $ , $ 3 $ is the largest integer so $ g(1,4)=3 $ .
In the second query, the answer is $ g(2,3)+g(3,3)=3+3=6 $ .
In the third query, the answer is $ 0 $ , because all $ i > j $ and $ g(i,j)=0 $ .
In the fourth query, the answer is $ g(6,6)=6 $ .
In the second example:
In the second query, the answer is $ g(2,3)=2 $ .
In the fourth query, the answer is $ g(1,4)+g(1,5)=2+2=4 $ .