func_code_string: #include <bits/stdc++.h>   using namespace std;   const double esp = 0.00000001;   const int N = 60;   const int PSize = 100;   const double PCross = 0.3;   const double PMuta = 0.05;   int a[200010], t[200010];   int n, T;   vector<int> res;   bool cmp(pair<int, int> a, pair<int, int> b) { return a.second < b.second; }   bool ok(int k, vector<pair<int, int> > e) {     if (k > e.size()) return false;     int ans = 0;     sort(e.begin(), e.end(), cmp);     for (int i = 0; i < k; i++) ans += e[i].second;     if (ans > T) return false;     res.clear();     for (int i = 0; i < k; i++) res.push_back(e[i].first);     return true;   }   int main() {     cin >> n >> T;     for (int i = 0; i < n; i++) cin >> a[i] >> t[i];     int l = 0, r = n;     while (l < r) {       int mid = (l + r + 1) >> 1;       vector<pair<int, int> > e;       for (int i = 0; i < n; i++)         if (a[i] >= mid) e.push_back(make_pair(i, t[i]));       if (ok(mid, e))         l = mid;       else         r = mid - 1;     }     cout << l << endl << res.size() << endl;     for (int i = 0; i < res.size(); i++) {       if (i) cout <<    ;       cout << res[i] + 1;     }     cout << endl;     return 0;   }   