func_code_string: #include <bits/stdc++.h>   using namespace std;   map<pair<long long, long long>, long long> ma;   void put(long long u, long long v, long long w) {     while (v != u) {       long long par;       if (v > u) {         par = v / 2;         ma[make_pair(par, v)] += w;         ma[make_pair(v, par)] += w;         v /= 2;       } else {         par = u / 2;         ma[make_pair(par, u)] += w;         ma[make_pair(u, par)] += w;         u /= 2;       }     }   }   long long solve(long long u, long long v) {     long long ans = 0;     while (v != u) {       long long par;       if (v > u) {         par = v / 2;         ans += ma[make_pair(par, v)];         v /= 2;       } else {         par = u / 2;         ans += ma[make_pair(par, u)];         u /= 2;       }     }     return ans;   }   int main() {     long long u, v, w, ans;     int q, ty;     cin >> q;     while (q--) {       cin >> ty;       if (ty == 1) {         cin >> u >> v >> w;         put(u, v, w);       } else {         cin >> u >> v;         cout << solve(u, v) << endl;       }     }     return 0;   }   