func_code_string: #include <bits/stdc++.h>   using namespace std;   void boost() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);   }   const int N = 1e6;   const long long inf = 1e9;   int n;   vector<string> s;   string ans, cur;   vector<int> g[200];   bool was[N];   map<string, bool> wass;   void dfs(int v) {     was[v] = 1;     bool flag = 0;     bool flag2 = ((int)cur.find(s[v]) > -1);     if (!flag2) {       for (int i = s[v].size(); i > 0; i--) {         string t1 = s[v].substr(0, i);         string t2 = s[v].substr(i, s[v].size() - i);         if ((int)cur.find(t1) > -1) {           cur += t2;           flag = 1;           break;         }       }     }     if (!flag && !flag2) {       for (int i = 1; i <= s[v].size(); i++) {         string t1 = s[v].substr(0, i);         string t2 = s[v].substr(i, s[v].size() - i);         if ((int)cur.find(t2) > -1) {           cur = t1 + cur;           break;         }       }     }     for (int i = 0; i < g[v].size(); i++) {       if (!was[g[v][i]]) {         dfs(g[v][i]);       }     }   }   bool cmp(string a, string b) { return a.size() > b.size(); }   int main() {     boost();     cin >> n;     s.push_back( 0 );     for (int i = 1; i <= n; i++) {       string x;       cin >> x;       if (!wass.count(x)) {         s.push_back(x);       }       wass[x] = 1;     }     n = s.size() - 1;     sort(s.begin() + 1, s.end(), cmp);     for (int i = 1; i <= n; i++) {       for (int j = 1; j <= n; j++) {         if (i != j) {           for (int k = 0; k < s[j].size(); k++) {             if ((int)s[i].find(s[j][k]) > -1) {               g[i].push_back(j);               g[j].push_back(i);               break;             }           }         }       }     }     for (int i = 1; i <= n; i++) {       if (!was[i]) {         cur =   ;         dfs(i);         ans += cur;       }     }     for (int i = 0; i < ans.size(); i++) {       for (int j = 0; j < ans.size(); j++) {         if (ans[i] == ans[j] && i != j) {           cout << i <<     << j << endl;         }       }     }     cout << ans;   }   