Codeforces Round 208 (Div. 2)
C
Dima and Containers
Codeforces
2000
原题
← BD →
翻译中…

Dima has a birthday soon! It's a big day! Saryozha's present to Dima is that Seryozha won't be in the room and won't disturb Dima and Inna as they celebrate the birthday. Inna's present to Dima is a stack, a queue and a deck.

翻译中…

Inna wants her present to show Dima how great a programmer he is. For that, she is going to give Dima commands one by one. There are two types of commands:

翻译中…
  1. Add a given number into one of containers. For the queue and the stack, you can add elements only to the end. For the deck, you can add elements to the beginning and to the end.
  2. Extract a number from each of at most three distinct containers. Tell all extracted numbers to Inna and then empty all containers. In the queue container you can extract numbers only from the beginning. In the stack container you can extract numbers only from the end. In the deck number you can extract numbers from the beginning and from the end. You cannot extract numbers from empty containers.
翻译中…

Every time Dima makes a command of the second type, Inna kisses Dima some (possibly zero) number of times. Dima knows Inna perfectly well, he is sure that this number equals the sum of numbers he extracts from containers during this operation.

翻译中…

As we've said before, Dima knows Inna perfectly well and he knows which commands Inna will give to Dima and the order of the commands. Help Dima find the strategy that lets him give as more kisses as possible for his birthday!

翻译中…

Input

翻译中…

The first line contains integer $*n*$ $(1 ≤ *n* ≤ 10^{5})$ — the number of Inna's commands. Then $*n*$ lines follow, describing Inna's commands. Each line consists an integer:

翻译中…
  1. Integer $*a*$ $(1 ≤ *a* ≤ 10^{5})$ means that Inna gives Dima a command to add number $*a*$ into one of containers.
  2. Integer $0$ shows that Inna asks Dima to make at most three extractions from different containers.
翻译中…

Output

翻译中…

Each command of the input must correspond to one line of the output — Dima's action.

翻译中…

For the command of the first type (adding) print one word that corresponds to Dima's choice:

翻译中…
  • pushStack — add to the end of the stack;
  • pushQueue — add to the end of the queue;
  • pushFront — add to the beginning of the deck;
  • pushBack — add to the end of the deck.
翻译中…

For a command of the second type first print an integer $*k*$ $(0 ≤ *k* ≤ 3)$, that shows the number of extract operations, then print $*k*$ words separated by space. The words can be:

翻译中…
  • popStack — extract from the end of the stack;
  • popQueue — extract from the beginning of the line;
  • popFront — extract from the beginning from the deck;
  • popBack — extract from the end of the deck.
翻译中…

The printed operations mustn't extract numbers from empty containers. Also, they must extract numbers from distinct containers.

翻译中…

The printed sequence of actions must lead to the maximum number of kisses. If there are multiple sequences of actions leading to the maximum number of kisses, you are allowed to print any of them.

翻译中…

样例

Input #1
10
0
1
0
1
2
0
1
2
3
0
Output #1
0
pushStack
1 popStack
pushStack
pushQueue
2 popStack popQueue
pushStack
pushQueue
pushFront
3 popStack popQueue popFront
InputCopy OutputCopy
Input #2
4
1
2
3
0
Output #2
pushStack
pushQueue
pushFront
3 popStack popQueue popFront
InputCopy OutputCopy
题目信息
题号
358C
时间限制
2 s
内存限制
256 MB
标签
构造
贪心
模拟

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。