func_code_string: #include <bits/stdc++.h>   using namespace std;   struct debugger {     template <typename T>     debugger& operator,(const T& v) {       cerr << v <<    ;       return *this;     }   } dbg;   const double PI = acos(-1);   template <class T>   T gcd(T a, T b) {     return b ? gcd(b, a % b) : a;   }   int n, m, a, b;   int A[100001], B[100001], L[100001];   int main() {     int n, m, a, b;     scanf( %d%d%d%d , &n, &m, &a, &b);     int width = b - a;     for (int i = 0; i < n; i++) scanf( %d , A + i);     for (int i = 0; i < m; i++) scanf( %d , B + i);     for (int i = 0; i < m; i++) scanf( %d , L + i);     double ans = -1;     int ans_a = -1, ans_b = -1;     for (int i = 0; i < m; i++) {       double ay = (double)((double)a / b) * B[i];       int aid = lower_bound(A, A + n, ay) - A;       for (int j = max(0, aid - 1); j <= min(n - 1, aid + 1); j++) {         double OA = sqrt((long long)pow(a, 2) + (long long)pow(A[j], 2));         double river_dist =             sqrt((long long)pow(width, 2) + (long long)pow(A[j] - B[i], 2));         double B_to_village = L[i];         double total_dist = OA + river_dist + B_to_village;         if (ans == -1 || total_dist < ans) {           ans = total_dist;           ans_a = j + 1;           ans_b = i + 1;         }       }     }     printf( %d %d , ans_a, ans_b);     return 0;   }   