Giả sử chúng ta có map lưu số báo danh (int) và tên (string). Nhập n truy vấn. Mỗi truy vấn: 2 hoặc 3 phần tử. Loại 1: chèn (1, roll, name). Loại 2: xóa (2, roll). Loại 3: tìm kiếm (3, roll) - in tên hoặc "Not found".
Ví dụ: n=8, queries=[[1,5,"Atanu"],[1,8,"Tapan"],[1,3,"Manish"],[2,8],[1,9,"Piyali"],[3,8],[3,3],[3,5]] → [Not found, Manish, Atanu]
Giải thuật
- Đọc n
- map
m - While n--:
- Đọc t, roll
- Nếu t==1: đọc name, m[roll]=name
- Nếu t==2: m[roll]=""
- Nếu t==3: nếu m[roll]!="" in tên, ngược lại "Not found"
Ví dụ minh họa
#include <iostream>
#include <map>
using namespace std;
int main(){
int n;
cin >> n;
map<int, string> m;
while (n--) {
int t;
cin >> t;
int roll;
cin >> roll;
if (t == 1) {
string name;
cin >> name;
m[roll] = name;
} else if (t == 2) {
m[roll] = "";
} else {
if(m[roll] != "")
cout << m[roll] << endl;
else
cout << "Not found" << endl;
}
}
}
Đầu vào
8 1 5 Atanu 1 8 Tapan 1 3 Manish 2 8 1 9 Piyali 3 8 3 3 3 5
Đầu ra
Not found Manish Atanu