func_code_string: #include <bits/stdc++.h>   const double pi = 3.1415926535897932384626433832795;   int gcd(int a, int b) {     if (a == 0) return b;     return gcd(b % a, a);   }   using namespace std;   void ifd() {}   void tme() {}   int n, k, h;   vector<pair<int, pair<int, int> > > l;   vector<int> answer;   bool can(double time) {     int cnt = 0;     int pos = 0;     while (pos < n && cnt < k) {       if (((double)l[pos].second.first * time) >= ((double)(cnt + 1) * h)) {         pos++;         cnt++;       } else {         pos++;       }     }     return cnt == k;   }   double bs() {     double low = 0, high = 1e10, mid;     for (int i = (0); i < (200); ++i) {       mid = (low + high) / 2;       if (can(mid))         high = mid;       else         low = mid;     }     return high;   }   int main() {     ifd();     cin >> n >> k >> h;     l.resize(n);     for (int i = (0); i < (n); ++i) {       cin >> l[i].first;     }     for (int i = (0); i < (n); ++i) {       cin >> l[i].second.first;       l[i].second.second = i + 1;     }     sort(l.begin(), l.end());     double time = bs();     int cnt = 0;     int pos = 0;     while (pos < n && cnt < k) {       if (((double)l[pos].second.first * time) >= ((double)(cnt + 1) * h)) {         answer.push_back(l[pos].second.second);         pos++;         cnt++;       } else {         pos++;       }     }     for (int i = (0); i < (k - 1); ++i) cout << answer[i] <<    ;     cout << answer[k - 1] << endl;     tme();     return 0;   }   