func_code_string: #include <bits/stdc++.h>   using namespace std;   inline int read(void) {     int x = 0;     char c = getchar();     while (c >  9  || c <  0 ) c = getchar();     while (c >=  0  && c <=  9 ) x = x * 10 + (c -  0 ), c = getchar();     return x;   }   const int N = 150010, M = 300010;   int n, m, c;   int loc[N], p[N];   struct xint {     double max_left, max_right, sum, res;     xint() {}     xint(double A) : max_left(A), max_right(A), sum(A), res(A) {}     inline void print(void) {       printf( %.2lf %.2lf %.2lf %.2lf n , sum, max_left, max_right, res);       puts(  );     }   } tr[N * 5];   xint update(xint lc, xint rc) {     xint k;     k.sum = lc.sum + rc.sum;     k.max_left = max(lc.max_left, lc.sum + rc.max_left);     k.max_right = max(rc.max_right, lc.max_right + rc.sum);     k.res = max(lc.res, rc.res);     k.res = max(k.res, lc.max_right + rc.max_left);     return k;   }   void build(int k, int l, int r) {     if (l == r) {       double P = (double)p[l] / 100.0;       double tmp = (double)(loc[l + 1] - loc[l]) / 2 - P * c;       tr[k] = xint(tmp);       return;     }     int mid = (l + r) >> 1;     int lc = k << 1, rc = k << 1 | 1;     build(lc, l, mid);     build(rc, mid + 1, r);     tr[k] = update(tr[lc], tr[rc]);   }   xint query(int k, int l, int r, int x, int y) {     if (x <= l && r <= y) return tr[k];     if (l > r) return 0;     int mid = (l + r) >> 1;     int lc = k << 1, rc = k << 1 | 1;     if (y <= mid) return query(lc, l, mid, x, y);     if (x > mid) return query(rc, mid + 1, r, x, y);     xint tmp1 = query(lc, l, mid, x, y);     xint tmp2 = query(rc, mid + 1, r, x, y);     return update(tmp1, tmp2);   }   int main(void) {     n = read(), m = read(), c = read();     for (int i = 1; i <= n; ++i) loc[i] = read();     for (int i = 1; i < n; ++i) p[i] = read();     build(1, 1, n - 1);     double ans = 0;     for (int i = 1; i <= m; ++i) {       int l = read(), r = read();       xint tmp = query(1, 1, n - 1, l, r - 1);       ans += max(tmp.res, 0.0);     }     printf( %.8lf n , ans);     return 0;   }   