สมมติว่าเราใช้ map เก็บข้อมูลนักเรียน key คือเลขประจำตัว (int) value คือชื่อ (string) รับ n คิวรี แต่ละคิวรีมี 2-3 ค่า: type 1 = insert (roll, name), type 2 = delete (roll), type 3 = search (roll)
เช่น 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]
ขั้นตอนการแก้ปัญหา
- n := จำนวนคิวรี
- map<int, string> m
- วนลูป n ครั้ง:
- อ่าน type t และ roll
- ถ้า t==1: อ่าน name, m[roll] = name
- ถ้า t==2: m[roll] = "" (ลบ)
- ถ้า t==3: ถ้า m[roll] != "" พิมพ์ชื่อ ไม่อยู่พิมพ์ "Not found"
ตัวอย่างโค้ด
#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; } } }
อินพุต
8 1 5 Atanu 1 8 Tapan 1 3 Manish 2 8 1 9 Piyali 3 8 3 3 3 5
เอาต์พุต
Not found Manish Atanu