func_code_string: #include <bits/stdc++.h>   using namespace std;   map<pair<string, int>, vector<pair<string, int> > > edg;   queue<string> que;   map<string, int> num, por;   set<string> sett;   int main() {     int n, i, k, l, r, a, b, j;     cin >> n;     string s, t, S;     for (i = 0; i < n; i++) {       cin >> s >> a;       if (!i) {         que.push(s);         num[s] = a;         S = s;         por[s] = 1;       }       cin >> k;       for (j = 0; j < k; j++) {         cin >> t >> b;         edg[{s, a}].push_back({t, b});       }     }     pair<string, int> st;     while (!que.empty()) {       sett.insert(que.front());       st.first = que.front();       st.second = num[st.first];       que.pop();       for (i = 0; i < edg[st].size(); i++) {         if (!num.count(edg[st][i].first)) {           num[edg[st][i].first] = edg[st][i].second;           por[edg[st][i].first] = por[st.first] + 1;           que.push(edg[st][i].first);         } else {           if (por[st.first] + 1 == por[edg[st][i].first] &&               edg[st][i].second > num[edg[st][i].first]) {             num[edg[st][i].first] = edg[st][i].second;           }         }       }     }     sett.erase(S);     cout << sett.size() <<   n ;     for (auto j : sett) {       cout << j <<     << num[j] <<   n ;     }   }   