func_code_string: #include <bits/stdc++.h>   using namespace std;   inline bool check_diags(int x0, int y0, int x, int y) {     return abs(x0 - x) == abs(y0 - y);   }   inline bool check_lines(int x0, int y0, int x, int y) {     return x - x0 == 0 || y - y0 == 0;   }   vector<int> a, b, c, d;   int n, x, s, m, k;   void read() {     for (int i = 0; i < m; ++i) {       int t;       scanf(  %d , &t);       a.push_back(t);     }     for (int i = 0; i < m; ++i) {       int t;       scanf(  %d , &t);       b.push_back(t);     }     a.push_back(x);     b.push_back(0);     c.push_back(0);     d.push_back(0);     for (int i = 0; i < k; ++i) {       int t;       scanf(  %d , &t);       c.push_back(t);     }     for (int i = 0; i < k; ++i) {       int t;       scanf(  %d , &t);       d.push_back(t);     }   }   int main() {     scanf( %d %d %d %d %d , &n, &m, &k, &x, &s);     read();     int64_t ans = numeric_limits<int64_t>::max();     for (int i = 0; i < m + 1; ++i) {       int avail = s - b[i];       if (avail < 0) continue;       auto pos = upper_bound(d.begin(), d.end(), avail);       if (pos != d.begin()) {         int j = distance(d.begin(), pos - 1);         int64_t val = ((int64_t)a[i]) * (n - c[j]);         ans = min(ans, val);       }     }     printf( %lld n , ans);     return EXIT_SUCCESS;   }   