#include<iostream>
#include<string>
#include<unordered_map>
using namespace std;
class student{
public:
string firstname;
string lastname;
string rollno;
student(string f,string l, string n){
firstname = f;
lastname = l;
rollno = n;
}
bool operator == (const student &s)const{
return rollno == s.rollno;
}
};
class Hashfn{
public:
size_t operator()(const student &s)const{
return s.firstname.length() + s.lastname.length();
}
};
int main(){
unordered_map<student,int,Hashfn> student_map;
student s1("pratek", "narang", "010");
student s2("rahul", "kumar", "023");
student s3("pratek", "gupta", "030");
student s4("rahul", "kumar", "120");
//add student marks to hashmap
student_map[s1] = 100;
student_map[s2] = 80;
student_map[s3] = 90;
student_map[s3] = 70;
for(auto s:student_map){
cout<<s.first.firstname<<" "<<s.first.rollno<<"marks"<<s.second<<endl;
}
return 0;}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8dW5vcmRlcmVkX21hcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3Mgc3R1ZGVudHsKcHVibGljOgogICAgc3RyaW5nIGZpcnN0bmFtZTsKICAgIHN0cmluZyBsYXN0bmFtZTsKICAgIHN0cmluZyByb2xsbm87CgogICAgc3R1ZGVudChzdHJpbmcgZixzdHJpbmcgbCwgc3RyaW5nIG4pewogICAgICAgIGZpcnN0bmFtZSA9IGY7CiAgICAgICAgbGFzdG5hbWUgPSBsOwogICAgICAgIHJvbGxubyA9IG47CiAgICB9CiAgICBib29sIG9wZXJhdG9yID09IChjb25zdCBzdHVkZW50ICZzKWNvbnN0ewogICAgICAgIHJldHVybiByb2xsbm8gPT0gcy5yb2xsbm87CiAgICB9Cn07CgpjbGFzcyBIYXNoZm57CnB1YmxpYzoKICAgIHNpemVfdCBvcGVyYXRvcigpKGNvbnN0IHN0dWRlbnQgJnMpY29uc3R7CiAgICAgICAgcmV0dXJuIHMuZmlyc3RuYW1lLmxlbmd0aCgpICsgcy5sYXN0bmFtZS5sZW5ndGgoKTsKICAgIH0KfTsKaW50IG1haW4oKXsKCiAgICB1bm9yZGVyZWRfbWFwPHN0dWRlbnQsaW50LEhhc2hmbj4gc3R1ZGVudF9tYXA7CiAgICBzdHVkZW50IHMxKCJwcmF0ZWsiLCAibmFyYW5nIiwgIjAxMCIpOwogICAgc3R1ZGVudCBzMigicmFodWwiLCAia3VtYXIiLCAiMDIzIik7CiAgICBzdHVkZW50IHMzKCJwcmF0ZWsiLCAiZ3VwdGEiLCAiMDMwIik7CiAgICBzdHVkZW50IHM0KCJyYWh1bCIsICJrdW1hciIsICIxMjAiKTsKCiAgICAvL2FkZCBzdHVkZW50IG1hcmtzIHRvIGhhc2htYXAKICAgIHN0dWRlbnRfbWFwW3MxXSA9IDEwMDsKICAgIHN0dWRlbnRfbWFwW3MyXSA9IDgwOwogICAgc3R1ZGVudF9tYXBbczNdID0gOTA7CiAgICBzdHVkZW50X21hcFtzM10gPSA3MDsKCiAgICBmb3IoYXV0byBzOnN0dWRlbnRfbWFwKXsKICAgICAgICBjb3V0PDxzLmZpcnN0LmZpcnN0bmFtZTw8IiAiPDxzLmZpcnN0LnJvbGxubzw8Im1hcmtzIjw8cy5zZWNvbmQ8PGVuZGw7CiAgICB9CgpyZXR1cm4gMDt9Cg==