package sort;
import java.util.Deque;
import java.util.LinkedList;
public class Test59_2 {
class inter {
int value;
int index;
public inter(int value, int index) {
// TODO Auto-generated constructor stub
this.index = index;
this.value = value;
}
}
Deque<inter> qu1 = new LinkedList<inter>();
Deque<inter> qu2 = new LinkedList<inter>();
int current = 0;
public void push(int number) {
while (!qu2.isEmpty() && qu2.getLast().value < number) {
qu2.removeLast();
}
inter temp = new inter(number, current++);
qu2.addLast(temp);
qu1.addLast(temp);
}
public int pop() throws Exception {
if (!qu1.isEmpty()) {
throw new Exception("queue is empty");
}
int n = qu1.getFirst().index;
if (n == qu2.getFirst().index) {
qu2.removeFirst();
}
qu1.removeFirst();
return n;
}
public int max() throws Exception {
if (qu1.isEmpty()) {
throw new Exception("queue is empty");
}
return qu2.getFirst().value;
}
}