func_code_string: #include <bits/stdc++.h>   using namespace std;   pair<int, pair<int, int> > A[2003 * 2003], B[2003 * 2003];   pair<int, int> a[2003], b[2003];   int m, n, r, s, x, y, i, j, asd;   long long t1, t2, mn;   bool h;   int main() {     cin >> m;     for (i = 1; i <= m; i++) {       cin >> a[i].first;       t1 += a[i].first;       a[i].second = i;     }     cin >> n;     for (i = 1; i <= n; i++) {       cin >> b[i].first;       t2 += b[i].first;       b[i].second = i;     }     for (i = 1; i <= m; i++)       for (j = i + 1; j <= m; j++)         A[++r] = make_pair(a[i].first + a[j].first, make_pair(i, j));     for (i = 1; i <= n; i++)       for (j = i + 1; j <= n; j++)         B[++s] = make_pair(b[i].first + b[j].first, make_pair(i, j));     sort(a + 1, a + m + 1);     sort(b + 1, b + n + 1);     sort(A + 1, A + r + 1);     sort(B + 1, B + s + 1);     if (t1 < t2) {       h = 1;       swap(t1, t2);       swap(m, n);       swap(r, s);       swap(a, b);       swap(A, B);     }     mn = t1 - t2;     for (i = j = 1; i <= m; i++) {       while (abs(t1 - a[i].first + b[j].first - (t2 - b[j].first + a[i].first)) >                  abs(t1 - a[i].first + b[j + 1].first -                      (t2 - b[j + 1].first + a[i].first)) &&              j < n)         j++;       if (mn >           abs(t1 - a[i].first + b[j].first - (t2 - b[j].first + a[i].first))) {         mn = abs(t1 - a[i].first + b[j].first - (t2 - b[j].first + a[i].first));         asd = 1;         x = i;         y = j;       }     }     for (i = j = 1; i <= r && s; i++) {       while (abs(t1 - A[i].first + B[j].first - (t2 - B[j].first + A[i].first)) >                  abs(t1 - A[i].first + B[j + 1].first -                      (t2 - B[j + 1].first + A[i].first)) &&              j < s)         j++;       if (mn >           abs((t1 - A[i].first + B[j].first) - (t2 - B[j].first + A[i].first))) {         mn = abs((t1 - A[i].first + B[j].first) - (t2 - B[j].first + A[i].first));         asd = 2;         x = i;         y = j;       }     }     cout << mn << endl << asd << endl;     if (asd == 1) {       if (!h)         cout << a[x].second <<     << b[y].second;       else         cout << b[y].second <<     << a[x].second;     } else if (asd) {       if (!h) {         cout << A[x].second.first <<     << B[y].second.first << endl;         cout << A[x].second.second <<     << B[y].second.second;       } else {         cout << B[y].second.first <<     << A[x].second.first << endl;         cout << B[y].second.second <<     << A[x].second.second;       }     }     return 0;   }   