{"trustable":true,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript type\u003d\"text/javascript\" async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS_HTML-full\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003e给定一个由 $$$\\textbf{a}$$$ 表示的序列 $$$(a_1, a_2, \\cdots, a_n)$$$。一个带有 $$$1 \\leq l \\leq r \\leq n$$$ 的查询被定义为 $$$$$$Q_{max}(l, r) \u003d \\max\\{a_l, a_{l + 1}, \\cdots, a_r\\}.$$$$$$ 一个简单的问题可能会要求你计算所有带有整数 $$$1 \\leq l \\leq r \\leq n$$$ 的查询的答案之和,但我们想向你展示一个更难的问题。\u003c/p\u003e\u003cp\u003e将分类器定义为一个存储唯一元素的容器。分类器中的每个元素都有两个值,分别为键值和映射值。每个元素的 \u003cspan class\u003d\"tex-font-style-bf\"\u003e键值\u003c/span\u003e 是 $$$\\textbf{a}$$$ 的一个连续子序列,该元素的 \u003cspan class\u003d\"tex-font-style-bf\"\u003e映射值\u003c/span\u003e 是指该子序列中的最大值。分类器只存储具有不同键值的元素,这意味着额外的重复元素(具有相同键值)将从分类器中移除。\u003c/p\u003e\u003cp\u003e将 $$$S(l, r)$$$ 定义为 $$$(a_l, a_{l + 1}, \\cdots, a_r)$$$,是 $$$\\textbf{a}$$$ 的一个连续子序列,满足 $$$l$$$ 和 $$$r$$$ 是整数,且 $$$1 \\leq l \\leq r \\leq n$$$。现在我们打算使用一个分类器 $$$\\textbf{CA}$$$ 存储 $$$\\textbf{a}$$$ 的所有连续子序列 $$$S(l, r)$$$ 及其 $$$Q_{max}(l, r)$$$。你需要确定 $$$\\textbf{CA}$$$ 中 \u003cspan class\u003d\"tex-font-style-bf\"\u003e映射值之和\u003c/span\u003e。\u003c/p\u003e\u003cp\u003e实际上,我们上面定义的是 C++ 中形式为 \u003cspan class\u003d\"tex-font-style-tt\"\u003emap\u0026lt;vector\u0026lt;int\u0026gt;, int\u0026gt;\u003c/span\u003e 或 Java 中形式为 \u003cspan class\u003d\"tex-font-style-tt\"\u003eMap\u0026lt;ArrayList\u0026lt;Integer\u0026gt;, Integer\u0026gt;\u003c/span\u003e 的映射,所以如果你习惯使用这些数据结构,你可能会意识到我们打算做的是将所有可能的元素 $$$(S(l, r), Q_{max}(l, r))$$$ 与整数 $$$1 \\leq l \\leq r \\leq n$$$ 插入分类器 $$$\\textbf{CA}$$$,然后要求你计算其中映射值的总和。\u003c/p\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cp\u003e输入包含多个测试用例,第一行包含一个正整数 $$$T$$$,表示测试用例的数量,最多为 $$$1000$$$。\u003c/p\u003e\u003cp\u003e对于每个测试用例,第一行包含一个整数 $$$n$$$,表示给定序列 $$$\\textbf{a}$$$ 的长度,其中 $$$1 \\leq n \\leq 2 \\times 10^5$$$。\u003c/p\u003e\u003cp\u003e第二行包含 $$$n$$$ 个正整数 $$$a_1, a_2, \\cdots, a_n$$$,描述序列 $$$\\textbf{a}$$$,其中 $$$1 \\leq a_i \\leq 10^6$$$。\u003c/p\u003e\u003cp\u003e我们保证最多有 $$$10$$$ 个测试用例,每个测试用例的长度不超过 $$$n \u0026gt; 1000$$$。\u003c/p\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e对于每个测试用例,输出一行,包含 $$$\\textbf{CA}$$$ 中映射值的总和。\u003c/p\u003e"}},{"title":"示例 1","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e2\n3\n1 2 3\n3\n2 3 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e14\n14\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"注意","value":{"format":"HTML","content":"\u003cp\u003e在第一个示例中,$$$\\textbf{CA}$$$ 中映射值的总和等于 $$$1 + 2 + 3 + 2 + 3 + 3$$$。\u003c/p\u003e\u003cp\u003e在第二个示例中,$$$\\textbf{CA}$$$ 中映射值的总和等于 $$$2 + 3 + 3 + 3 + 3$$$。\u003c/p\u003e"}}]}