symbol table
#include<bits/stdc++.h>
using namespace std;
#define ll long long

class Symbol_table {
    set<pair<string, string>> v[10];
public:
    int hashfun(string name) {
        int sum = 0;
        for(int i = 0; i < name.size(); i++) {
            sum += name[i];
        }
        return sum % 10;
    }

    void insertt(string name, string type) {

        int hash_val = hashfun(name);
        set<pair<string, string>> se = v[hash_val];

        if(se.find({name, type}) == se.end()) {
            v[hash_val].insert({name, type});
            cout << "successful insertion\n";
        }
        else {
            cout << "Already inserted\n";
        }
    }

    void deletee(string name, string type) {

        int hash_val = hashfun(name);
        set<pair<string, string>> se = v[hash_val];

        if(se.find({name, type}) != se.end()) {
            v[hash_val].erase({name, type});
            cout << "Successful deletion\n";
        }
        else {
            cout << "Nai\n";
        }
    }

    void lookup(string name, string type) {

        int hash_val = hashfun(name);
        set<pair<string, string>> se = v[hash_val];

        if(se.find({name, type}) == se.end()) {
            cout << "0\n";
        }
        else {
            cout << "1\n";
        }
    }

    void print() {
        for(auto se : v) {
            for(auto p : se) {
                cout << p.first << " " << p.second << '\n';
            }
        }
    }
};

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    Symbol_table s;
    s.insertt("int", "id");
    s.insertt("int", "id");
    s.deletee("yoyo", "fifa");
    s.print();
    // s.deletee("int", "id");
    s.lookup("int", "id");
    s.insertt("bool", "float");
    s.deletee("bool", "float");
    s.print();
    return 0;
}-- your code goes here