1. 创建一个类来实现哈希表中的功能
  2. 使用时间戳来记录setAll操作
  3. 具体细节看代码
#include <bits/stdc++.h>
using namespace std;
class Set {
public:
	int sAV, sAT, t;	
	unordered_map<int, vector<int>> s; 
	Set() {		// 构造函数
		sAV = 0; sAT = -1; t = 0;
	}
	void put(int k, int v) {
		vector<int> tmp;
		tmp.push_back(v);
		tmp.push_back(++t);
		s[k] = tmp;
	}
	int find(int k) {
		if (s.find(k) == s.end()) return -1;
		auto &tmp = s[k];
		return tmp[1] < sAT ? sAV : tmp[0];
	}
	void setAll(int val) {
		sAV = val;	
		sAT = ++t;
	}
	
	
};


int main() {
	int n; cin >> n;
	Set s;
	while (n--) {
		int t; cin >> t;
		if (t == 1) {
			int a,b; cin >> a >> b;
			s.put(a,b);
		} else if (t == 2) {
			int a; cin >> a;
			cout << s.find(a) << '\n';
		} else {
			int a; cin >> a;
			s.setAll(a);
		}
	}
	
	return 0;
}