Problem G: Dynamic Arrays and List - List

"
Time Limit $10$ 秒/Second(s) Memory Limit $512$ 兆字节/Megabyte(s)
提交总数 $1223$ 正确数量 $741$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签 STL

List 

For a dynamic list L of integers, perform a sequence of the following operations. 

L has a special element called END at the end of the list and an element of L is indicated by a cursor. 

insert(x): Insert x before the element indicated by the cursor. After this operation, the cursor points the inserted element. 

move(d): Move the cursor to the end by d, if d is positive. Move the cursor to the front by d, if d is negative. 

erase(): Delete the element indicated by the cursor. After this operation, the cursor points the element next to the deleted element. 

In case there is no such element, the cursor should point END. In the initial state, L is empty and the cursor points END.

The input is given in the following format. 

query1 

query2 

queryq 

Each query queryi is given by 0 x or 1 d or 2 where the first digits 0, 1 and 2 represent insert, move and erase operations respectively. 1≤q≤500,000 The cursor indicates an element of L or END during the operations Erase operation will not given when the cursor points END −1,000,000,000≤x≤1,000,000,000 Moving distance of the cursor (∑|d|) does not exceed 1,000,000 L is not empty after performing all operations

Print all elements of the list in order after performing given operations. Print an element in a line.
5
0 1
0 2
0 3
1 1
2
3
1