func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 3e5 + 5;   const int inf = 0x3f3f3f3f;   const int mod = 1e9 + 7;   int con[26][26];   char str1[maxn];   char str2[maxn];   char strans[maxn];   int main() {     scanf( %s%s , str1, str2);     memset(con, inf, sizeof(con));     for (int i = 0; i < 26; i++) con[i][i] = 0;     int n;     scanf( %d , &n);     for (int i = 1; i <= n; i++) {       getchar();       char a, b;       int w;       scanf( %c %c %d , &a, &b, &w);       int num1 = a -  a ;       int num2 = b -  a ;       if (num1 == num2) continue;       con[num1][num2] = min(w, con[num1][num2]);     }     for (int k = 0; k < 26; k++) {       for (int i = 0; i < 26; i++)         for (int j = 0; j < 26; j++) {           con[i][j] = min(con[i][k] + con[k][j], con[i][j]);         }     }     int len = strlen(str1);     int len1 = strlen(str2);     if (len != len1) {       printf( -1 n );       return 0;     }     int ans = 0;     int ff = 1;     for (int i = 0; i < len; i++) {       int sum1 = inf;       int num1 = str1[i] -  a ;       int num2 = str2[i] -  a ;       for (int j = 0; j < 26; j++) {         if (con[num1][j] + con[num2][j] < sum1) {           sum1 = con[num1][j] + con[num2][j];           strans[i] =  a  + j;         }       }       if (sum1 >= inf) {         ff = 0;         break;       }       ans += sum1;     }     strans[len] =   n ;     if (ff == 0)       printf( -1 n );     else {       printf( %d n , ans);       printf( %s n , strans);     }     return 0;   }   