#include <bits/stdc++.h>
double eps = 1E-4;
double distrunning(double xBS, double xU, double yU);
typedef struct busstop {
  double busstopx, distrun, sumtime;
} busstop;
int main(void) {
  long int N;
  double vB, vS, xU, yU;
  scanf("%ld %lf %lf%*c", &N, &vB, &vS);
  if (N == 2) {
    printf("2");
    exit(EXIT_SUCCESS);
  }
  N--;
  busstop *bstp = (busstop *)malloc(N * sizeof(busstop));
  int i;
  scanf("%*d");
  for (i = 0; i < N; i++) scanf("%lf", &(bstp[i].busstopx));
  scanf("%lf %lf", &xU, &yU);
  long int minind = 0;
  for (i = 0; i < N; i++) {
    bstp[i].distrun = distrunning(bstp[i].busstopx, xU, yU);
    bstp[i].sumtime = bstp[i].busstopx / ((double)vB) + bstp[i].distrun / vS;
    if (fabs(bstp[i].sumtime - bstp[minind].sumtime) < eps)
      if (bstp[i].distrun < bstp[minind].distrun) {
        minind = i;
        continue;
      }
    if (bstp[i].sumtime < bstp[minind].sumtime) minind = i;
  }
  printf("%ld", minind + 2);
  return 0;
}
double distrunning(double xBS, double xU, double yU) {
  return sqrt((xBS - xU) * (xBS - xU) + yU * yU);
}
