CP98 · LRU 缓存

中等栈与哈希哈希链表模拟时限 1000 ms(参考)
题目描述

实现一个容量为 c 的 LRU(最近最少使用)缓存,依次处理 q 条操作:put k v 写入或更新键 k 的值(容量满时先淘汰最久未使用的键);get k 查询键 k 的值,不存在则为 -1。get 与 put 都会把该键标记为「刚刚使用」。

输入描述

第一行两个整数 c、q(1 ≤ c ≤ 10^5,1 ≤ q ≤ 2×10^5);接下来 q 行,每行为 put k v 或 get k(0 ≤ k, v ≤ 10^9)。

输出描述

对每条 get 操作输出一行结果。