func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n, m, c, p, y, k, x, h, t, q;   string s;   vector<long long> v;   map<long long, long long> ma;   void input() {}   struct node {     map<string, node*> child;     map<string, long long> ispresent;     string name;     bool isfile = 0;   };   pair<long long, long long> dfs(node* root) {     pair<long long, long long> p = {0, 0};     if (root->isfile == 1) {       p = {0, 1};       return p;     }     pair<long long, long long> res = {0, 0};     for (auto i : root->child) {       p = dfs(i.second);       res.first += p.first;       res.second += p.second;     }     res.first++;     return res;   }   void solve() {     string s;     map<char, node*> roots;     roots[ C ] = new node();     roots[ D ] = new node();     roots[ E ] = new node();     roots[ F ] = new node();     roots[ G ] = new node();     while (cin >> s) {       long long n = s.size();       char disk = s[0];       node* temp = roots[disk];       for (long long i = 3; i < n; i++) {         long long j;         string names =   ;         bool file = 0;         for (j = i; s[j] !=      && j < n; j++) {           names += s[j];           if (s[j] ==  . ) file = 1;         }         i = j;         if (temp->ispresent[names] != 0) {           temp = temp->child[names];         } else {           node* newnode = new node();           if (file == 1) {             newnode->isfile = true;           }           newnode->name = names;           temp->child[names] = newnode;           temp->ispresent[names]++;           temp = temp->child[names];         }       }     }     long long maxfiles = 0;     long long maxfolder = 0;     for (auto i : roots[ C ]->child) {       pair<long long, long long> p = dfs(i.second);       maxfolder = max(maxfolder, p.first);       maxfiles = max(maxfiles, p.second);     }     for (auto i : roots[ D ]->child) {       pair<long long, long long> p = dfs(i.second);       maxfolder = max(maxfolder, p.first);       maxfiles = max(maxfiles, p.second);     }     for (auto i : roots[ E ]->child) {       pair<long long, long long> p = dfs(i.second);       maxfolder = max(maxfolder, p.first);       maxfiles = max(maxfiles, p.second);     }     for (auto i : roots[ F ]->child) {       pair<long long, long long> p = dfs(i.second);       maxfolder = max(maxfolder, p.first);       maxfiles = max(maxfiles, p.second);     }     for (auto i : roots[ G ]->child) {       pair<long long, long long> p = dfs(i.second);       maxfolder = max(maxfolder, p.first);       maxfiles = max(maxfiles, p.second);     }     cout << maxfolder - 1 <<     << maxfiles;   }   signed main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     long long T = 1;     while (T--) {       input();       solve();     }   }   