/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{ Integer[] arr
= {10,
70,
4,
15,
20,
12,
8,
17}; PriorityQueue
<Integer
>maxheap
= new PriorityQueue
<>(10,
Collections.
reverseOrder()); PriorityQueue<Integer>minheap = new PriorityQueue<>(10);
if (a >= median) {
minheap.add(a);
if (minheap.size() - maxheap.size() >= 2)
maxheap.add(minheap.poll());
}
else {
maxheap.add(a);
if (maxheap.size() - minheap.size() >= 2)
minheap.add(maxheap.poll());
}
Integer diff
= maxheap.
size() - minheap.
size(); if (diff == 1)
median = maxheap.peek();
else if (diff == -1)
median = minheap.peek();
else
median
= Math.
min(minheap.
peek(), maxheap.
peek()); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJeyAgSW50ZWdlcltdIGFycj0gezEwLDcwLDQsMTUsMjAsMTIsOCwxN307CgkgICBQcmlvcml0eVF1ZXVlPEludGVnZXI+bWF4aGVhcCA9IG5ldyBQcmlvcml0eVF1ZXVlPD4oMTAsIENvbGxlY3Rpb25zLnJldmVyc2VPcmRlcigpKTsKCSAgIFByaW9yaXR5UXVldWU8SW50ZWdlcj5taW5oZWFwID0gbmV3IFByaW9yaXR5UXVldWU8PigxMCk7CgkgICBJbnRlZ2VyIG1lZGlhbiA9IC05OTk5OwoJICAgZm9yIChJbnRlZ2VyIGE6IGFycikgewoJICAgCSAgaWYgKGEgPj0gbWVkaWFuKSB7CiAgICAgICAgICAgICBtaW5oZWFwLmFkZChhKTsKICAgICAgICAgICAgIGlmIChtaW5oZWFwLnNpemUoKSAtIG1heGhlYXAuc2l6ZSgpID49IDIpCiAgICAgICAgICAgICAgICAgbWF4aGVhcC5hZGQobWluaGVhcC5wb2xsKCkpOwoJICAgCSAgfQogICAgICAgIAllbHNlIHsKICAgICAgICAgICAgIG1heGhlYXAuYWRkKGEpOwogICAgICAgICAgICAgaWYgKG1heGhlYXAuc2l6ZSgpIC0gbWluaGVhcC5zaXplKCkgPj0gMikKICAgICAgICAgICAgICAgICBtaW5oZWFwLmFkZChtYXhoZWFwLnBvbGwoKSk7CiAgICAgICAgCX0gCiAgICAJCUludGVnZXIgZGlmZiA9IG1heGhlYXAuc2l6ZSgpIC0gbWluaGVhcC5zaXplKCk7CiAgICAJCWlmIChkaWZmID09IDEpCiAgICAJCQkgbWVkaWFuID0gbWF4aGVhcC5wZWVrKCk7CiAgICAgICAgCWVsc2UgaWYJKGRpZmYgPT0gLTEpCiAgICAgICAgCSAgIG1lZGlhbiA9IG1pbmhlYXAucGVlaygpOwogICAgICAgIAllbHNlICAgCiAgICAgICAgCQltZWRpYW4gPSBNYXRoLm1pbihtaW5oZWFwLnBlZWsoKSwgbWF4aGVhcC5wZWVrKCkpOwogICAgCQlTeXN0ZW0ub3V0LnByaW50bG4obWVkaWFuKTsKCSAgIH0KCX0KCn0=