Informatica Online Judge

  눈사람 머신 [1678 / 068E]

Time Limit(Test case) : 2000(ms)
Number of users who solved : 19   Total Tried : 26


The Champion of this Problem (C++) : gs16028 - 0ms / 504byte
My Best Submission (C++) : N/A

[koistudy.net (unkonwn)]

Background

경곽에 겨울이 다가오고 있다.

어김없이 경곽이는 이번 겨울에도 눈 사람을 만들어 친구들에게 보여주려고 한다.

이번 학기 고급 정보과학을 수강한 경곽이는 아두이노와 라즈베리 파이등을 이용해 최첨단 눈사람 복제 기능을 가지고 있는 기계를 만들어 내었다.

눈 사람은 기본적으로 눈덩이를 쌓아올려 만들게 되며, 경곽이는 특정 위치의 눈사람을 복제해서 그 위에 자신이 원하는 개수의 눈덩이를 올리고 또한 특정 위치의 눈사람을 복제해서 최근에 올려진 눈덩이를 치울 수 있는 기능을 구현하였다.

경곽이가 만든 장치로 복제한 모든 눈 사람의 총 눈덩이를 구하는 프로그램을 작성하여 그의 우월함을 보여주자.

Input

첫 줄에 연산의 수를 나타내는 정수 $N$이 입력 된다.

두 번째 줄부터 $N$가지의 연산이 입력 된다.

연산의 종류

$t$ $m$ : $ t$ 번째 눈 사람을 복사하여 그 위에 눈덩이를 $m$개 만큼 쌓는다.
$t$ $0$ : $t$ 번째 눈 사람을 복사하여 가장 최근에 쌓인 눈덩이를 치운다.

0번째 눈 사람은 0개의 눈 덩이를 가지고 있다.

비어 있는 눈 사람에 대한 삭제 쿼리는 존재하지 않는다.

[입력값의 정의역]
$1 <= N <= 1,000,000$
$1 <= m <= 1,000$

Output

모든 눈 사람을 구성하고 있는 눈덩이의 개수를 출력한다.

IO Example

입력
8
0 1
1 5
2 4
3 2
4 3
5 0
6 6
1 0

출력
74

설명
0 1 : 복사 0 and 쌓기 1 = 1
1 5 : 복사 1 and 쌓기 5 = 6
2 4 : 복사 2 and 쌓기 4 = 10
3 2 : 복사 3 and 쌓기 2 = 12
4 3 : 복사 4 and 쌓기 3 = 15
5 0 : 복사 5 and 최근에 쌓인 눈 덩이 삭제 (=3) = 12
6 6 : 복사 6 and 쌓기 6 = 18
1 0 : 복사 1 and 최근에 쌓인 눈 덩이 삭제 (=1) = 0

1 + 6 + 10 + 12 + 15 + 12 + 18 + 0 = 74

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]