CF1290E.Cartesian Tree

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Ildar is the algorithm teacher of William and Harris. Today, Ildar is teaching Cartesian Tree. However, Harris is sick, so Ildar is only teaching William.

A cartesian tree is a rooted tree, that can be constructed from a sequence of distinct integers. We build the cartesian tree as follows:

  1. If the sequence is empty, return an empty tree;
  2. Let the position of the maximum element be xx ;
  3. Remove element on the position xx from the sequence and break it into the left part and the right part (which might be empty) (not actually removing it, just taking it away temporarily);
  4. Build cartesian tree for each part;
  5. Create a new vertex for the element, that was on the position xx which will serve as the root of the new tree. Then, for the root of the left part and right part, if exists, will become the children for this vertex;
  6. Return the tree we have gotten.

For example, this is the cartesian tree for the sequence 4,2,7,3,5,6,14, 2, 7, 3, 5, 6, 1 :

After teaching what the cartesian tree is, Ildar has assigned homework. He starts with an empty sequence aa .

In the ii -th round, he inserts an element with value ii somewhere in aa . Then, he asks a question: what is the sum of the sizes of the subtrees for every node in the cartesian tree for the current sequence aa ?

Node vv is in the node uu subtree if and only if v=uv = u or vv is in the subtree of one of the vertex uu children. The size of the subtree of node uu is the number of nodes vv such that vv is in the subtree of uu .

Ildar will do nn rounds in total. The homework is the sequence of answers to the nn questions.

The next day, Ildar told Harris that he has to complete the homework as well. Harris obtained the final state of the sequence aa from William. However, he has no idea how to find the answers to the nn questions. Help Harris!

输入格式

The first line contains a single integer nn ( 1n1500001 \le n \le 150000 ).

The second line contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n ( 1ain1 \le a_i \le n ). It is guarenteed that each integer from 11 to nn appears in the sequence exactly once.

输出格式

Print nn lines, ii -th line should contain a single integer — the answer to the ii -th question.

输入输出样例

  • 输入#1

    5
    2 4 1 5 3

    输出#1

    1
    3
    6
    8
    11
  • 输入#2

    6
    1 2 4 5 6 3

    输出#2

    1
    3
    6
    8
    12
    17

说明/提示

After the first round, the sequence is 11 . The tree is

The answer is 11 .

After the second round, the sequence is 2,12, 1 . The tree is

The answer is 2+1=32+1=3 .

After the third round, the sequence is 2,1,32, 1, 3 . The tree is

The answer is 2+1+3=62+1+3=6 .

After the fourth round, the sequence is 2,4,1,32, 4, 1, 3 . The tree is

The answer is 1+4+1+2=81+4+1+2=8 .

After the fifth round, the sequence is 2,4,1,5,32, 4, 1, 5, 3 . The tree is

The answer is 1+3+1+5+1=111+3+1+5+1=11 .

首页