func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long int N = 1e5 + 5;   const long long int mod = 1e15 + 7;   long long int dx[] = {1, -1, 0, 0};   long long int dy[] = {0, 0, 1, -1};   long long int y[N], yy[N], len[N];   long long int n, m, low, high, mid1, mid2;   double ans = (double)mod;   long long int ans_n, ans_m;   long long int a, b;   double find_distance(double x, double y, double u, double v) {     double temp = ((x - u) * (x - u) + (y - v) * (y - v));     temp = sqrt(temp);     return temp;   }   int main() {     cin >> n >> m >> a >> b;     for (long long int i = 1; i < n + 1; i++) {       cin >> y[i];     }     for (long long int i = 1; i < m + 1; i++) {       cin >> yy[i];     }     for (long long int i = 1; i < m + 1; i++) {       cin >> len[i];     }     for (long long int i = 1; i < m + 1; i++) {       low = 1;       high = n;       while ((high - low) > 5) {         mid1 = low + (high - low) / 3;         mid2 = low + 2 * (high - low) / 3;         double dis1 = find_distance(0, 0, a, y[mid1]) +                       find_distance(a, y[mid1], b, yy[i]) + len[i];         double dis2 = find_distance(0, 0, a, y[mid2]) +                       find_distance(a, y[mid2], b, yy[i]) + len[i];         if (dis1 < dis2) {           high = mid2;         } else {           low = mid1;         }       }       for (long long int zz = low; zz < high + 1; zz++) {         double temp = find_distance(0, 0, a, y[zz]) +                       find_distance(a, y[zz], b, yy[i]) + len[i];         if (temp < ans) {           ans = temp;           ans_n = zz;           ans_m = i;         }       }     }     cout << ans_n <<     << ans_m << endl;     return 0;   }   