java解法,思路比较简单

1、用一个Map来保存每一个下标t和它的值c
2、用ArrayList来存储每一个key
3、用PriorityQueue来保持一个最小的下标

具体操作:
1、添加操作:首先在【t-30,t+30】这个区间判断是否存在key值,如果存在就不添加,不存在就添加
2、获取操作:如果不存在为t的下标key,那么就输出0,否则将Map中key为t的值取出
3、删除操作:首先判断PriorityQueue是否为空,如果为空,那么久输出“skipped”,否则就从中弹出一个最小key,然后从Map, ArrayList中一次删除该key
4、不要问我ArrayList有什么用,我写到现在才发现ArrayList没用 0.0! 0.0!
(最初的打算是在添加元素的时候遍历一次ArrayList,判断是否需要添加元素,后来写的时候直接用Map.containKeys了)

import java.util.ArrayList;
import java.util.HashMap;
import java.util.PriorityQueue;
import java.util.Scanner;

public class Main {

    static ArrayList<Integer> keys = new ArrayList<>();
    static PriorityQueue<Integer> min = new PriorityQueue<>();
    static HashMap<Integer,Integer> hashMap = new HashMap<>();

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int times = sc.nextInt();
        sc.nextLine();
        while(times -- > 0) {
            String s = sc.nextLine();
            String[] action = s.split("\\s+");
            if (action.length == 1) {
                if (action[0].equals("-1")) {
                    if (!min.isEmpty())
                    remove(min.peek());  //输出
                    else
                        System.out.println("skipped");
                } else {
                    get(Integer.parseInt(action[0])); //输出
                }
            }

            if (action.length == 2) {
                add(Integer.valueOf(action[0]),Integer.valueOf(action[1]));
            }
        }
    }

    static void add(int t, int c) {

        boolean isAdd = true;
        for (int i = t - 30; i <= t + 30; i++) {
            if (hashMap.containsKey(i)) {  //error?
                isAdd = false;
                break;
            }
        }
        if (isAdd == true) {
            hashMap.put(t,c);
            keys.add(t);
            min.add(t);
        }

    }

    static void remove(int t) {
            System.out.println(hashMap.get(t));
            hashMap.remove(t);
            min.poll();
            keys.remove(keys.indexOf(t));
    }

    static void get(int t) {
        if (hashMap.containsKey(t) == false) {
            System.out.println(0);
        } else {
            System.out.println(hashMap.get(t));
        }
    }
}