题目描述 实现一个固定容量的最近最少使用缓存。缓存保存整数键和值,并支持以下操作: put key value:若键已存在,更新其值并将它标记为最近使用;否则插入该键值对。若插入后容量超限,删除最久未使用的键值对。 get key:若键存在,输出对应值并将它标记为最近使用;否则输出 $-1$。 更新已有键也算一次使用。开始时缓存为空。 输入格式 第一行输入两个整数 $c,q$,分别表示缓存容量和操作数。 接下来 $q$ 行,每行是一条操作,格式为 put key value 或 get key。操作按输入顺序执行。 输出格式 对每条 get 操作输出一行结果:键存在时输出对应值,否则输出 -1。put 操作不输出内容。 数据范围 $1\le c\le 3000$ $1\le q\le 2\times 10^5$ $0\le key\le 10^4$ $0\le value\le 10^5$ 输入样例 2 9 put 1 1 put 2 2 get 1 put 3 3 get 2 put 4 4 get 1 get 3 get 4 输出样例 1 -1 -1 3 4