#include<bits/stdc++.h>
using namespace std;
struct symbolinfo{
string name;
string type;
};
class symboltable{
vector<symbolinfo>vec[10];
public:
int hashfunction(string name)
{
int sum=0;
int len=name.length();
for(int i=0;i<len;i++)
{
sum+=name[i] ;
}
return sum%10;
}
void insertt (string name,string type){
symbolinfo*ob=new symbolinfo();
ob->name=name;
ob->type=type;
int hashval=hashfunction(name);
vector<symbolinfo>v=vec[hashval];
int flag=0;
for(auto find =v.begin();find!=v.end();++find)
{
if (find->name==name&&find->type==type)
{
flag=1;
break;
}
}
if(flag==1)
{
cout<<"already inserted"<<endl;
}
else{
vec[hashval].push_back(*ob) ;
cout<<"Symbol inserted"<<endl;
}
}
int lookup(string name)
{
}
void deletee(string name,string type)
{
}
};
int main()
{
symboltable s;
s.insertt("int","keyword") ;
s.insertt("a","id");
s.insertt("a","id");
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBzeW1ib2xpbmZvewpzdHJpbmcgbmFtZTsKc3RyaW5nIHR5cGU7Cn07CgpjbGFzcyBzeW1ib2x0YWJsZXsKdmVjdG9yPHN5bWJvbGluZm8+dmVjWzEwXTsKcHVibGljOgoKCiAgIGludCAgaGFzaGZ1bmN0aW9uKHN0cmluZyBuYW1lKQoKewogIGludCBzdW09MDsKICBpbnQgbGVuPW5hbWUubGVuZ3RoKCk7CiAgZm9yKGludCBpPTA7aTxsZW47aSsrKQogICB7CiAgICAgc3VtKz1uYW1lW2ldIDsKCiAgIH0KICAgcmV0dXJuIHN1bSUxMDsKfQoKCnZvaWQgaW5zZXJ0dCAoc3RyaW5nIG5hbWUsc3RyaW5nIHR5cGUpewogc3ltYm9saW5mbypvYj1uZXcgc3ltYm9saW5mbygpOwogb2ItPm5hbWU9bmFtZTsKIG9iLT50eXBlPXR5cGU7CgppbnQgaGFzaHZhbD1oYXNoZnVuY3Rpb24obmFtZSk7CnZlY3RvcjxzeW1ib2xpbmZvPnY9dmVjW2hhc2h2YWxdOwppbnQgZmxhZz0wOwpmb3IoYXV0byBmaW5kID12LmJlZ2luKCk7ZmluZCE9di5lbmQoKTsrK2ZpbmQpCnsKICBpZiAoZmluZC0+bmFtZT09bmFtZSYmZmluZC0+dHlwZT09dHlwZSkKICAgIHsKICAgICAgICBmbGFnPTE7CiAgICAgICAgYnJlYWs7CgogICAgfQp9CgppZihmbGFnPT0xKQp7CgogIGNvdXQ8PCJhbHJlYWR5IGluc2VydGVkIjw8ZW5kbDsKCn0KZWxzZXsKCiB2ZWNbaGFzaHZhbF0ucHVzaF9iYWNrKCpvYikgOwogY291dDw8IlN5bWJvbCBpbnNlcnRlZCI8PGVuZGw7Cgp9Cgp9CgppbnQgbG9va3VwKHN0cmluZyBuYW1lKQp7CgoKfQp2b2lkIGRlbGV0ZWUoc3RyaW5nIG5hbWUsc3RyaW5nIHR5cGUpCnsKCgp9Cn07CgoKCmludCBtYWluKCkKewogIHN5bWJvbHRhYmxlIHM7CiAgcy5pbnNlcnR0KCJpbnQiLCJrZXl3b3JkIikgOwogIHMuaW5zZXJ0dCgiYSIsImlkIik7CiAgcy5pbnNlcnR0KCJhIiwiaWQiKTsKICAKfQoKCgoK