func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( -O2 )   using namespace std;   string doSum(string a, string b) {     if (a.size() < b.size()) swap(a, b);     int j = a.size() - 1;     for (int i = b.size() - 1; i >= 0; i--, j--) a[j] += (b[i] -  0 );     for (int i = a.size() - 1; i > 0; i--) {       if (a[i] >  9 ) {         int d = a[i] -  0 ;         a[i - 1] = ((a[i - 1] -  0 ) + d / 10) +  0 ;         a[i] = (d % 10) +  0 ;       }     }     if (a[0] >  9 ) {       string k;       k += a[0];       a[0] = ((a[0] -  0 ) % 10) +  0 ;       k[0] = ((k[0] -  0 ) / 10) +  0 ;       a = k + a;     }     return a;   }   const int LIM = 1e5 + 5, MOD = 1e9 + 7;   const long double EPS = 1e-9;   string minofstrings(string a, string b) {     if (a.size() == 0) return b;     if (b.size() == 0) return a;     if (a.size() > b.size()) return b;     if (a.size() < b.size()) return a;     if (a >= b) return b;     return a;   }   signed main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long l;     cin >> l;     string s;     cin >> s;     vector<int> v;     string ans1, ans2, ans3;     int n = s.length();     if (s[n / 2] !=  0 ) {       ans1 = doSum(s.substr(0, n / 2), s.substr(n / 2, n - n / 2));     } else {       int g = n / 2;       int f = -1;       for (int i = n / 2; i >= 0; --i) {         if (s[i] !=  0 ) {           f = i;           break;         }       }       if (f != -1) ans1 = doSum(s.substr(0, f), s.substr(f, n - f));     }     if (s[(n - 1) / 2] !=  0 ) {       ans2 =           doSum(s.substr(0, (n - 1) / 2), s.substr((n - 1) / 2, n - (n - 1) / 2));     } else {       int g = (n - 1) / 2;       int f = -1;       for (int i = (n - 1) / 2; i < n; ++i) {         if (s[i] !=  0 ) {           f = i;           break;         }       }       if (f != -1) ans2 = doSum(s.substr(0, f), s.substr(f, n - f));     }     if (s[(n + 1) / 2] !=  0 ) {       ans3 =           doSum(s.substr(0, (n + 1) / 2), s.substr((n + 1) / 2, n - (n + 1) / 2));     } else {       int g = (n + 1) / 2;       int f = -1;       for (int i = (n + 1) / 2; i < n; ++i) {         if (s[i] !=  0 ) {           f = i;           break;         }       }       if (f != -1) ans3 = doSum(s.substr(0, f), s.substr(f, n - f));     }     ans1 = minofstrings(ans1, ans2);     ans1 = minofstrings(ans1, ans3);     cout << ans1 <<   n ;     return 0;   }   