Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function max(a: int, b: int) -> int {
- if (a > b) { return a; }
- return b;
- }
- struct Window {
- mv: int,
- l: int[],
- r: int[],
- function push(self: Window, x: int) {
- self.r.push(x);
- self.mv = max(self.mv, x);
- }
- function pop(self: Window) {
- if (self.l.length() == 0) {
- let mx = -2000000007;
- while (self.r.length() > 0) {
- mx = max(mx, self.r[self.r.length() - 1]);
- self.l.push(mx);
- self.r.pop();
- }
- self.mv = -2000000007;
- }
- self.l.pop();
- }
- function get(self: Window) -> int {
- let res = self.mv;
- if (self.l.length() > 0) { res = max(res, self.l[self.l.length() - 1]); }
- return res;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement