func_code_string: #include <bits/stdc++.h>   using namespace std;   struct car {     int c, v;   };   bool operator<(car a, car b) { return a.v < b.v; }   int main() {     ios::sync_with_stdio(false);     int n, k, s, t;     cin >> n >> k >> s >> t;     vector<car> arr(n);     for (int i = 0; i < n; i++) cin >> arr[i].c >> arr[i].v;     vector<int> g(k + 2);     g[0] = 0;     for (int i(1); i <= k; i++) cin >> g[i];     k += 2;     g[k - 1] = s;     sort(arr.begin(), arr.end());     sort(g.begin(), g.end());     int l = -1, r = n;     int cnt = 0;     while (r - l > 1) {       cnt++;       int m = (r + l) / 2;       int time = 0;       for (int i(1); i < k; i++) {         int d = g[i] - g[i - 1];         int a = min(arr[m].v - d, d);         int norm = d - a;         if (arr[m].v < d) {           time = 2000000007;           break;         }         time += a + 2 * norm;       }       if (time > t)         l = m;       else         r = m;     }     if (r == n)       cout << -1 << endl;     else {       int ans = 1000000007;       for (int i = r; i < n; ++i) ans = min(ans, arr[i].c);       cout << ans << endl;     }     return 0;   }   