#include <map>
#include <string>

// TODO convert this function to
// O(1) compile time map.
int get_z(std::string & element){
  if (element == "H") return 1;
  if (element =="He") return 2;
  if (element == "Li") return 3;
  if (element == "Be") return 4;
  if (element == "B") return 5;
  if (element == "C") return 6;
  if (element == "N") return 7;
  if (element == "O") return 8;
  if (element == "F") return 9;
  if (element == "Ne") return 10;
  if (element == "Na") return 11;
  if (element == "Mg") return 12;
  if (element == "Al") return 13;
  if (element == "Si") return 14;
  if (element == "P") return 15;
  if (element == "S") return 16;
  if (element == "Cl") return 17;
  if (element == "Ar") return 18;
  if (element == "K") return 19;
  if (element == "Ca") return 20;
  if (element == "Sc") return 21;
  if (element == "Ti") return 22;
  if (element == "V") return 23;
  if (element == "Cr") return 24;
  if (element == "Mn") return 25;
  if (element == "Fe") return 26;
  if (element == "Co") return 27;
  if (element == "Ni") return 28;
  if (element == "Cu") return 29;
  if (element == "Zn") return 30;
  if (element == "Ga") return 31;
  if (element == "Ge") return 32;
  if (element == "As") return 33;
  if (element == "Se") return 34;
  if (element == "Br") return 35;
  if (element == "Kr") return 36;
  if (element == "Rb") return 37;
  if (element == "Sr") return 38;
  if (element == "Y") return 39;
  if (element == "Zr") return 40;
  if (element == "Nb") return 41;
  if (element == "Mo") return 42;
  if (element == "Tc") return 43;
  if (element == "Ru") return 44;
  if (element == "Rh") return 45;
  if (element == "Pd") return 46;
  if (element == "Ag") return 47;
  if (element == "Cd") return 48;
  if (element == "In") return 49;
  if (element == "Sn") return 50;
  if (element == "Sb") return 51;
  if (element == "Te") return 52;
  if (element == "I") return 53;
  if (element == "Xe") return 54;
  if (element == "Cs") return 55;
  if (element == "Ba") return 56;
  if (element == "La") return 57;
  if (element == "Ce") return 58;
  if (element == "Pr") return 59;
  if (element == "Nd") return 60;
  if (element == "Pm") return 61;
  if (element == "Sm") return 62;
  if (element == "Eu") return 63;
  if (element == "Gd") return 64;
  if (element == "Tb") return 65;
  if (element == "Dy") return 66;
  if (element == "Ho") return 67;
  if (element == "Er") return 68;
  if (element == "Tm") return 69;
  if (element == "Yb") return 70;
  if (element == "Lu") return 71;
  if (element == "Hf") return 72;
  if (element == "Ta") return 73;
  if (element == "W") return 74;
  if (element == "Re") return 75;
  if (element == "Os") return 76;
  if (element == "Ir") return 77;
  if (element == "Pt") return 78;
  if (element == "Au") return 79;
  if (element == "Hg") return 80;
  if (element == "Tl") return 81;
  if (element == "Pb") return 82;
  if (element == "Bi") return 83;
  if (element == "Po") return 84;
  if (element == "At") return 85;
  if (element == "Rn") return 86;
  if (element == "Fr") return 87;
  if (element == "Ra") return 88;
  if (element == "Ac") return 89;
  if (element == "Th") return 90;
  if (element == "Pa") return 91;
  if (element == "U") return 92;
  if (element == "Np") return 93;
  if (element == "Pu") return 94;
  if (element == "Am") return 95;
  if (element == "Cm") return 96;
  if (element == "Bk") return 97;
  if (element == "Cf") return 98;
  if (element == "Es") return 99;
  if (element == "Fm") return 100;
  if (element == "Md") return 101;
  if (element == "No") return 102;
  if (element == "Lr") return 103;
  if (element == "Rf") return 104;
  if (element == "Db") return 105;
  if (element == "Sg") return 106;
  if (element == "Bh") return 107;
  if (element == "Hs") return 108;
  if (element == "Mt") return 109;
  if (element == "Ds") return 110;
  if (element == "Rg") return 111;
  if (element == "Cn") return 112;
  if (element == "Nh") return 113;
  if (element == "Fl") return 114;
  if (element == "Mc") return 115;
  if (element == "Lv") return 116;
  if (element == "Ts") return 117;
  if (element == "Og") return 118;
}
