#include
<
stdio.h
>
#define
MAX 1000000
int
heap[MAX];
class
MIN_HEAP
{
public
:
int
len;
int
del_min(
int
p);
int
insert(
int
x);
}
;
int
MIN_HEAP::del_min(
int
p)
{
int
q
=
p
<<
1
,a
=
heap[p]
=
heap[len];
heap[len
--
]
=
0
;
while
(q
<=
len)
{
if
(q
<
len
&&
heap[q
+
1
]
<
heap[q])q
++
;
if
(heap[q]
>=
a)
break
;
heap[p]
=
heap[q];
p
=
q;
q
=
p
<<
1
;
}
heap[p]
=
a;
return
len;
}
int
MIN_HEAP::insert(
int
x)
{
heap[
++
len]
=
x;
int
p
=
len;
int
q
=
p
>>
1
,a
=
x;
while
(q
&&
a
<
heap[q])
{
heap[p]
=
heap[q];p
=
q;q
=
p
>>
1
;
}
heap[ p]
=
a;
return
len;
}
int
main()
{
int
n,i,j,x;
MIN_HEAP min_heap;
scanf(
"
%d
"
,
&
n);
for
(i
=
1
;i
<=
n;i
++
)scanf(
"
%d
"
,heap
+
i);
min_heap.len
=
n;
while
(scanf(
"
%d
"
,
&
j))
{
if
(j
>
0
)
{
scanf(
"
%d
"
,
&
x);
min_heap.insert(x);
}
else
{
min_heap.del_min(
0
);
}
for
(i
=
1
;i
<=
min_heap.len;i
++
)
printf(
"
%d
"
,heap[i]);
printf(
"
\n
"
);
}
return
0
;
}
看了那么久终于看完了,唉~真不知道该开心还是难过,看了又忘,先贴着有时间多看两下5555555