TOJ 3515

import java.util.Scanner;

public class TOJ3515 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
x = new int[SIZE];
d = new int[SIZE];
for (int i = 0; i < t; i++) {
x_count = 1;
d_count = 1;

        int n = sc.nextInt();
        mid = sc.nextInt();
        for (int j = 1; j < n; j++) {
            int c = sc.nextInt();
            add(c);
        }
        n = sc.nextInt();
        for (int j = 0; j < n; j++) {
            String cmd = sc.next();
            if(cmd.toCharArray()[0]=='a'){
                int a = sc.nextInt();
                add(a);
            }else if(cmd.toCharArray()[0]=='m'){
                System.out.println(mid);
            }
        }
    }
}
static int mid = 0;
static int x[] ; 
static int d[] ; 
static int SIZE = 15;
//  static int SIZE = 110001;
static int x_count;
static int d_count;
static void add(int c){
    if(cx_count){
            int cc = d_delete();
            x_add(mid);
            mid = cc;
        }
    }else{
        x_add(c);
        if(x_count>d_count+1){
            int cc = x_delete();
            d_add(mid);
            mid = cc;
        }
    }
}
private static int d_delete() {
    int tmp = d[1];
    d[1] = d[--d_count];
    d_down(1);
    return tmp;
}
private static int x_delete() {
    int tmp = x[1];
    x[1] = x[--x_count];
    x_down(1);
    return tmp;
}
static void d_add(int a){
    d[d_count++] = a;
    d_up(d_count-1);
}
static void x_add(int a){
    x[x_count++] = a;
    x_up(x_count-1);
}
static void x_up(int curr){
    while(curr>1){
        int p = curr/2;
        if(x[p]>x[curr]){
            swap(x,p,curr);
        }
        curr = p;
    }
}
static void d_up(int curr){
    while(curr>1){
        int p = curr/2;
        if(d[p]x[l]) {
            min = x[l];
            min_index = l;
        }
        if(rx[r]) {
            min = x[r];
            min_index = r;
        }
        if(min_index==id) break;
        swap(x,id,min_index);
        id = min_index;
        l = id*2;
        r = id*2+1;
    }
}
static void swap(int d[],int a,int b){
    int tmp = d[a];
    d[a] = d[b];
    d[b] = tmp;
}

}

你可能感兴趣的:(TOJ 3515)