#include <bits/stdc++.h>
using namespace std;
struct vertex {
  double sum, pref, suf, ans;
};
vertex T[5000047];
int moc2;
vertex create_vertex(double a) {
  vertex v;
  v.sum = a;
  v.ans = max(a, 0.0);
  v.pref = v.ans;
  v.suf = v.ans;
  return v;
}
void update_vertex(int v) {
  T[v].sum = T[2 * v].sum + T[2 * v + 1].sum;
  T[v].ans = max(T[2 * v].ans,
                 max(T[2 * v + 1].ans, T[2 * v].suf + T[2 * v + 1].pref));
  T[v].pref = max(T[2 * v].pref, T[2 * v].sum + T[2 * v + 1].pref);
  T[v].suf = max(T[2 * v + 1].suf, T[2 * v + 1].sum + T[2 * v].suf);
}
vertex query(int v, int from, int to, int zac, int kon) {
  if (to <= zac || kon <= from) return create_vertex(0.0);
  if (from <= zac && to >= kon) {
    return T[v];
  }
  int stred = (zac + kon) / 2;
  vertex l = query(2 * v, from, to, zac, stred),
         p = query(2 * v + 1, from, to, stred, kon);
  vertex res;
  res.sum = l.sum + p.sum;
  res.pref = max(l.pref, l.sum + p.pref);
  res.suf = max(p.suf, p.sum + l.suf);
  res.ans = max(l.ans, max(p.ans, l.suf + p.pref));
  return res;
}
double answer(int from, int to) {
  vertex res = query(1, from, to, 0, moc2);
  return res.ans;
}
int main() {
  int n, m, c;
  scanf("%d %d %d", &n, &m, &c);
  vector<int> X;
  X.resize(n);
  for (int i = 0; i < (n); i++) scanf(" %d", &X[i]);
  vector<double> P;
  for (int i = 0; i < (n - 1); i++) {
    int x;
    scanf(" %d", &x);
    P.push_back(x / 100.0);
  }
  vector<pair<int, int> > A;
  for (int i = 0; i < (m); i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    A.push_back(make_pair((x - 1), (y - 1)));
  }
  vector<double> C;
  C.resize(n, 0);
  for (int i = 0; i < (n - 1); i++) {
    double res = (X[i + 1] - X[i]) / 2.0 - P[i] * c;
    C[i] = res;
  }
  moc2 = 1;
  while (moc2 < n) moc2 *= 2;
  for (int i = 0; i < (n - 1); i++) T[moc2 + i] = create_vertex(C[i]);
  for (int i = moc2 - 1; i > 0; i--) update_vertex(i);
  double res = 0;
  for (int i = 0; i < (A.size()); i++) {
    res += answer(A[i].first, A[i].second);
  }
  printf("%0.9lf\n", res);
  return 0;
}
