#include <cstdio>
#include <set>
#include <iterator>
using namespace std;
int main( )
{
long int n, size, i;
char op;
long int val;
scanf ( "%ld" , & n) ;
multiset< long int > minset;
multiset< long int > maxset;
multiset< long int > :: iterator itr1;
long int max_minset, min_maxset;
for ( i = 1 ; i <= n; ++ i) {
scanf ( "%c" , & op) ;
scanf ( "%c" , & op) ;
scanf ( "%ld" , & val) ;
printf ( "i = %ld, " , i) ;
printf ( " || op = %c, val = %ld" , op, val) ;
if ( op == 'a' ) {
if ( minset.empty ( ) && maxset.empty ( ) ) {
minset.insert ( val) ;
} else {
max_minset = * ( -- minset.end ( ) ) ;
//printf("In Insert --> min_maxset = %d, max_minset = %d\n", min_maxset, max_minset);
if ( val > max_minset) {
maxset.insert ( val) ;
} else {
minset.insert ( val) ;
}
}
} else {
if ( minset.empty ( ) && maxset.empty ( ) ) {
printf ( "Wrong!\n " ) ;
continue ;
}
max_minset = * ( -- minset.end ( ) ) ;
if ( val > max_minset) {
if ( maxset.find ( val) == maxset.end ( ) ) {
printf ( "Wrong!----->\n " ) ;
continue ;
}
maxset.erase ( maxset.find ( val) ) ;
} else {
minset.erase ( minset.find ( val) ) ;
}
}
if ( minset.empty ( ) && maxset.empty ( ) ) {
printf ( "Wrong!\n " ) ;
continue ;
}
if ( maxset.size ( ) > minset.size ( ) ) {
printf ( " || |max| > |min| || " ) ;
min_maxset = * ( maxset.begin ( ) ) ;
maxset.erase ( maxset.find ( min_maxset) ) ;
minset.insert ( min_maxset) ;
}
if ( minset.size ( ) > maxset.size ( ) + 1 ) {
printf ( " || |min| > |max| + 1 || " ) ;
max_minset = * ( -- minset.end ( ) ) ;
minset.erase ( minset.find ( max_minset) ) ;
maxset.insert ( max_minset) ;
}
printf ( " || Min Set --> " ) ;
itr1 = minset.begin ( ) ;
while ( itr1 ! = minset.end ( ) ) {
printf ( "%ld " , * itr1) ;
++ itr1;
}
printf ( " || Max Set --> " ) ;
itr1 = maxset.begin ( ) ;
while ( itr1 ! = maxset.end ( ) ) {
printf ( "%ld " , * itr1) ;
++ itr1;
}
size = minset.size ( ) + maxset.size ( ) ;
max_minset = * ( -- minset.end ( ) ) ;
if ( size == 1 && maxset.empty ( ) ) {
printf ( "%ld\n " , * ( -- minset.end ( ) ) ) ;
continue ;
}
min_maxset = * ( maxset.begin ( ) ) ;
if ( size % 2 == 0 ) {
double temp = ( max_minset + min_maxset) / 2.0 ;
if ( temp == ( long int ) temp) {
printf ( "%ld\n " , ( long int ) temp) ;
} else {
printf ( "%.1lf\n " , temp) ;
}
} else {
printf ( "%ld\n " , max_minset) ;
}
}
return 0 ;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGl0ZXJhdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewoJbG9uZyBpbnQgbiwgc2l6ZSwgaTsKCWNoYXIgb3A7Cglsb25nIGludCB2YWw7CgkKCXNjYW5mKCIlbGQiLCAmbik7CgkKCW11bHRpc2V0PGxvbmcgaW50PiBtaW5zZXQ7CgltdWx0aXNldDxsb25nIGludD4gbWF4c2V0OwoJbXVsdGlzZXQ8bG9uZyBpbnQ+OjppdGVyYXRvciBpdHIxOwoJbG9uZyBpbnQgbWF4X21pbnNldCwgbWluX21heHNldDsKCQoJZm9yIChpID0gMTsgaSA8PSBuOyArK2kpIHsKCQlzY2FuZigiJWMiLCAmb3ApOwoJCXNjYW5mKCIlYyIsICZvcCk7CgkJc2NhbmYoIiVsZCIsICZ2YWwpOwoJCXByaW50ZigiaSA9ICVsZCwgIiwgaSk7CgkJcHJpbnRmKCIgfHwgb3AgPSAlYywgdmFsID0gJWxkIiwgb3AsIHZhbCk7CgkJCgkJaWYgKG9wID09ICdhJykgewoJCQlpZiAobWluc2V0LmVtcHR5KCkgJiYgbWF4c2V0LmVtcHR5KCkpIHsKCQkJCW1pbnNldC5pbnNlcnQodmFsKTsKCQkJfSBlbHNlIHsKCQkJCW1heF9taW5zZXQgPSAqKC0tbWluc2V0LmVuZCgpKTsKCQkJCS8vcHJpbnRmKCJJbiBJbnNlcnQgLS0+IG1pbl9tYXhzZXQgPSAlZCwgbWF4X21pbnNldCA9ICVkXG4iLCBtaW5fbWF4c2V0LCBtYXhfbWluc2V0KTsKCQkJCQoJCQkJaWYgKHZhbCA+IG1heF9taW5zZXQpIHsKCQkJCQltYXhzZXQuaW5zZXJ0KHZhbCk7CgkJCQl9IGVsc2UgewoJCQkJCW1pbnNldC5pbnNlcnQodmFsKTsgCgkJCQl9CgkJCX0KCQl9IGVsc2UgewoJCQlpZiAobWluc2V0LmVtcHR5KCkgJiYgbWF4c2V0LmVtcHR5KCkpIHsKCQkJCXByaW50ZigiV3JvbmchXG4iKTsKCQkJCWNvbnRpbnVlOwoJCQl9CgkJCQoJCQltYXhfbWluc2V0ID0gKigtLW1pbnNldC5lbmQoKSk7CgkJCQoJCQlpZiAodmFsID4gbWF4X21pbnNldCkgewoJCQkJaWYgKG1heHNldC5maW5kKHZhbCkgPT0gbWF4c2V0LmVuZCgpKSB7CgkJCQkJcHJpbnRmKCJXcm9uZyEtLS0tLT5cbiIpOwoJCQkJCWNvbnRpbnVlOwoJCQkJfQoJCQkKCQkJCW1heHNldC5lcmFzZShtYXhzZXQuZmluZCh2YWwpKTsKCQkJfSBlbHNlIHsKCQkJCW1pbnNldC5lcmFzZShtaW5zZXQuZmluZCh2YWwpKTsKCQkJfQoJCX0KCQkKCQlpZiAobWluc2V0LmVtcHR5KCkgJiYgbWF4c2V0LmVtcHR5KCkpIHsKCQkJcHJpbnRmKCJXcm9uZyFcbiIpOwoJCQljb250aW51ZTsKCQl9CgkJCgkJaWYgKG1heHNldC5zaXplKCkgPiBtaW5zZXQuc2l6ZSgpKSB7CgkJCXByaW50ZigiIHx8IHxtYXh8ID4gfG1pbnwgfHwgIik7CgkJCW1pbl9tYXhzZXQgPSAqKG1heHNldC5iZWdpbigpKTsJCQkJCgkJCW1heHNldC5lcmFzZShtYXhzZXQuZmluZChtaW5fbWF4c2V0KSk7CgkJCW1pbnNldC5pbnNlcnQobWluX21heHNldCk7CgkJfQoJCQkKCQlpZiAobWluc2V0LnNpemUoKSA+IG1heHNldC5zaXplKCkgKyAxKSB7CgkJCXByaW50ZigiIHx8IHxtaW58ID4gfG1heHwgKyAxIHx8ICIpOwoJCQltYXhfbWluc2V0ID0gKigtLW1pbnNldC5lbmQoKSk7CgkJCW1pbnNldC5lcmFzZShtaW5zZXQuZmluZChtYXhfbWluc2V0KSk7CgkJCW1heHNldC5pbnNlcnQobWF4X21pbnNldCk7CgkJfQoJCQoJCXByaW50ZigiIHx8IE1pbiBTZXQgLS0+ICIpOwoJCWl0cjEgPSBtaW5zZXQuYmVnaW4oKTsKCQl3aGlsZSAoaXRyMSAhPSBtaW5zZXQuZW5kKCkpIHsKCQkJcHJpbnRmKCIlbGQgIiwgKml0cjEpOwoJCQkrK2l0cjE7CgkJfQoJCQoJCXByaW50ZigiIHx8IE1heCBTZXQgLS0+ICIpOwoJCWl0cjEgPSBtYXhzZXQuYmVnaW4oKTsKCQl3aGlsZSAoaXRyMSAhPSBtYXhzZXQuZW5kKCkpIHsKCQkJcHJpbnRmKCIlbGQgIiwgKml0cjEpOwoJCQkrK2l0cjE7CgkJfQoJCQoJCXNpemUgPSBtaW5zZXQuc2l6ZSgpICsgbWF4c2V0LnNpemUoKTsKCQltYXhfbWluc2V0ID0gKigtLW1pbnNldC5lbmQoKSk7CgkJCgkJaWYgKHNpemUgPT0gMSAmJiBtYXhzZXQuZW1wdHkoKSkgewoJCQlwcmludGYoIiVsZFxuIiwgKigtLW1pbnNldC5lbmQoKSkpOwoJCQljb250aW51ZTsKCQl9CgkJCgkJbWluX21heHNldCA9ICoobWF4c2V0LmJlZ2luKCkpOwoJCQoJCWlmIChzaXplICUgMiA9PSAwKSB7CgkJCWRvdWJsZSB0ZW1wID0gKG1heF9taW5zZXQgKyBtaW5fbWF4c2V0KSAvIDIuMDsKCQkJCgkJCWlmICh0ZW1wID09IChsb25nIGludCkgdGVtcCkgewoJCQkJcHJpbnRmKCIlbGRcbiIsIChsb25nIGludCkgdGVtcCk7CgkJCX0gZWxzZSB7CgkJCQlwcmludGYoIiUuMWxmXG4iLCB0ZW1wKTsKCQkJfQoJCX0gZWxzZSB7CgkJCXByaW50ZigiJWxkXG4iLCBtYXhfbWluc2V0KTsKCQl9Cgl9CgkKCXJldHVybiAwOwp9
stdin
NTAKYSAtMjE0NzQ4MzY0OAphIC0yMTQ3NDgzNjQ4CmEgLTIxNDc0ODM2NDcKciAtMjE0NzQ4MzY0OAphIDIxNDc0ODM2NDcKciAtMjE0NzQ4MzY0OAphIDEwCmEgMTAKYSAxMApyIDEwCnIgMTAKciAxMApyIDEwMApyIDEwMApyIDEwMApyIC0yMTQ3NDgzNjQ4CnIgMjE0NzQ4MzY0NwpyIDEwCmEgMQphIC0xCmEgMQphIC0xCnIgMQpyIC0xCnIgLTEKciAtMQpyIC0xCnIgMQpyIDEKciAwCmEgMAphIDEKYSAyMTQ3NDgzNjQ3CmEgMgpyIDEKYSAyMTQ3NDgzNjQ2CnIgMgphIDIxNDc0ODM2NDAKYSAxMApyIDIKciAyCnIgMgpyIDEKciAxCnIgMQphIDIxNDc0ODM2NDAKYSAyMTQ3NDgzNjQwCmEgLTIxNDc0ODM2NDgKYSAtMjE0NzQ4MzY0MApyIDIxNDc0ODM2NDA=
50
a -2147483648
a -2147483648
a -2147483647
r -2147483648
a 2147483647
r -2147483648
a 10
a 10
a 10
r 10
r 10
r 10
r 100
r 100
r 100
r -2147483648
r 2147483647
r 10
a 1
a -1
a 1
a -1
r 1
r -1
r -1
r -1
r -1
r 1
r 1
r 0
a 0
a 1
a 2147483647
a 2
r 1
a 2147483646
r 2
a 2147483640
a 10
r 2
r 2
r 2
r 1
r 1
r 1
a 2147483640
a 2147483640
a -2147483648
a -2147483640
r 2147483640
stdout
i = 1, || op = a, val = -2147483648 || Min Set --> -2147483648 || Max Set --> -2147483648
i = 2, || op = a, val = -2147483648 || |min| > |max| + 1 || || Min Set --> -2147483648 || Max Set --> -2147483648 0
i = 3, || op = a, val = -2147483647 || |max| > |min| || || Min Set --> -2147483648 -2147483648 || Max Set --> -2147483647 -2147483648
i = 4, || op = r, val = -2147483648 || Min Set --> -2147483648 || Max Set --> -2147483647 0.5
i = 5, || op = a, val = 2147483647 || |max| > |min| || || Min Set --> -2147483648 -2147483647 || Max Set --> 2147483647 -2147483647
i = 6, || op = r, val = -2147483648 || Min Set --> -2147483647 || Max Set --> 2147483647 0
i = 7, || op = a, val = 10 || |max| > |min| || || Min Set --> -2147483647 10 || Max Set --> 2147483647 10
i = 8, || op = a, val = 10 || |min| > |max| + 1 || || Min Set --> -2147483647 10 || Max Set --> 10 2147483647 10
i = 9, || op = a, val = 10 || Min Set --> -2147483647 10 10 || Max Set --> 10 2147483647 10
i = 10, || op = r, val = 10 || Min Set --> -2147483647 10 || Max Set --> 10 2147483647 10
i = 11, || op = r, val = 10 || |max| > |min| || || Min Set --> -2147483647 10 || Max Set --> 2147483647 10
i = 12, || op = r, val = 10 || Min Set --> -2147483647 || Max Set --> 2147483647 0
i = 13, || op = r, val = 100Wrong!----->
i = 14, || op = r, val = 100Wrong!----->
i = 15, || op = r, val = 100Wrong!----->
i = 16, || op = r, val = -2147483648
stderr
*** Error in `./prog': free(): invalid pointer: 0xbf8a9d94 ***
======= Backtrace: =========
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x75e72)[0xb746ee72]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x76bb0)[0xb746fbb0]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb765182f]
./prog[0x8048e83]
./prog[0x8048ac7]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xf5)[0xb74128f5]
./prog[0x8048c99]
======= Memory map: ========
08048000-0804a000 r-xp 00000000 08:01 14703 /home/M2C9w3/prog
0804a000-0804b000 rw-p 00001000 08:01 14703 /home/M2C9w3/prog
09135000-09156000 rw-p 00000000 00:00 0 [heap]
b73f7000-b73f9000 rw-p 00000000 00:00 0
b73f9000-b75a2000 r-xp 00000000 08:01 373 /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b75a2000-b75a3000 ---p 001a9000 08:01 373 /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b75a3000-b75a5000 r--p 001a9000 08:01 373 /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b75a5000-b75a6000 rw-p 001ab000 08:01 373 /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b75a6000-b75a9000 rw-p 00000000 00:00 0
b75a9000-b75c4000 r-xp 00000000 08:01 437 /lib/i386-linux-gnu/libgcc_s.so.1
b75c4000-b75c5000 rw-p 0001a000 08:01 437 /lib/i386-linux-gnu/libgcc_s.so.1
b75c5000-b75c6000 rw-p 00000000 00:00 0
b75c6000-b7607000 r-xp 00000000 08:01 385 /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b7607000-b7608000 r--p 00040000 08:01 385 /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b7608000-b7609000 rw-p 00041000 08:01 385 /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b7609000-b76e5000 r-xp 00000000 08:01 4970 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b76e5000-b76e6000 ---p 000dc000 08:01 4970 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b76e6000-b76ea000 r--p 000dc000 08:01 4970 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b76ea000-b76eb000 rw-p 000e0000 08:01 4970 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b76eb000-b76f2000 rw-p 00000000 00:00 0
b76f3000-b76f8000 rw-p 00000000 00:00 0
b76f8000-b76f9000 r-xp 00000000 00:00 0 [vdso]
b76f9000-b7718000 r-xp 00000000 08:01 422 /lib/i386-linux-gnu/ld-2.17.so
b7718000-b7719000 r--p 0001f000 08:01 422 /lib/i386-linux-gnu/ld-2.17.so
b7719000-b771a000 rw-p 00020000 08:01 422 /lib/i386-linux-gnu/ld-2.17.so
bf889000-bf8aa000 rw-p 00000000 00:00 0 [stack]